【问题标题】:loading in a MySQL table called "order" with RMySQL使用 RMySQL 加载名为“order”的 MySQL 表
【发布时间】:2018-05-07 07:01:36
【问题描述】:

我目前正在尝试使用 RMySQL 包将我的 R 会话连接到 MySQL 服务器。 服务器上的一个表名为“order”,我已经搜索了如何使用 MySQL 导入名为 order 的表(通过将其放入 ''),但该语法不适用于 RMySQL 查询。

当我运行以下语句时:

order_query = dbSendQuery(mydb,"SELECT * FROM 'order'")

它返回以下错误:

.local(conn, statement, ...) 中的错误:无法运行语句: 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的“订单”附近

有人知道如何在 R 中解决这个问题吗?

【问题讨论】:

    标签: r rmysql


    【解决方案1】:

    MySQL 中的单引号表示字符串文字,您不应该将它们放在表名周围。尝试不带引号的查询:

    order_query = dbSendQuery(mydb,"SELECT * FROM `order`")
    

    如果您出于某种原因需要转义您的表名,请使用反引号,例如

    SELECT * FROM `some table`    -- table name with a space (generally a bad thing)
    

    编辑:

    正如@Ralf 指出的那样,在这种情况下你确实需要反引号,因为ORDER 是一个 MySQL 关键字,你不应该使用它来命名你的表和列。

    【讨论】:

    • 非常感谢,没有引号它不起作用。但是反引号完美地工作!非常感谢!
    • 反引号是必要的,因为order 是 SQL 中的保留字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多