You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RODBC连接MySQL后执行SQL查询报错问题求助

问题分析与解决方案

这个问题的核心是MySQL的SQL语法对引号的使用规则导致的:MySQL默认情况下,双引号(")是用来表示字符串字面量的,而不是用来包裹表名、列名这类标识符的。你把表名和列名都用双引号括起来,MySQL会把它们当成普通字符串,自然就报语法错误了。

解决方法有两种,推荐第一种:

  1. 直接去掉所有双引号
    你的列名和表名都没有空格、特殊字符,完全符合MySQL标识符的规则,不需要额外包裹引号。修改后的代码如下:

    test <- sqlQuery(mycon, paste('SELECT PID, NAME, FIRSTNAME1, SEXE, BIRTHDATE FROM a_patient;'))
    head(test)
    
  2. 改用反引号包裹标识符
    如果你的标识符包含空格或特殊字符,或者你习惯明确区分标识符和字符串,可以用MySQL的专用标识符引号——反引号(`):

    test <- sqlQuery(mycon, paste('SELECT `PID`, `NAME`, `FIRSTNAME1`, `SEXE`, `BIRTHDATE` FROM `a_patient`;'))
    head(test)
    

额外说明

如果实在想让MySQL支持双引号作为标识符,可以修改MySQL的sql_mode,添加ANSI_QUOTES选项,但这种方式不推荐,因为会改变默认语法规则,可能影响其他查询的兼容性,还是遵循MySQL原生语法更稳妥。

内容的提问来源于stack exchange,提问作者Robisch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 22:52:33