如何指定在MySql中有空格的列名(在where子句中)

时间:2010-11-19 16:59:12

标签: mysql

我有下表

ID  First Name  Last Name
1   Ruby            Rails 
2   Loop            Western

列中有空格,所以当我写一个像

这样的查询时

$sql = "SELECT * FROM Persons where [Last Name] = 'Western' ";

它会抛出错误

Error, could not list tables MySQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Last Name] = 'Western'' at line 1

如何让它发挥作用?

3 个答案:

答案 0 :(得分:4)

如果这是有效的,你必须使用反引号:

`Last Name` 

但如果你问我,不要这样做。这是在路上的某个地方乞讨。只需使用下划线或CamelCase:LastName

答案 1 :(得分:3)

您在列名称周围使用反向标记:

SELECT * FROM Persons WHERE `Last Name` = 'Western'

请注意,这不是标准SQL; Microsoft名称也不是在名称周围使用方括号。 SQL标准使用“分隔标识符”,用双引号括起来:

SELECT * FROM Persons WHERE "Last Name" = 'Western'

答案 2 :(得分:0)

使用

选择*从[姓氏] ='西方'的人中

如果使用双引号将整个命令包装为字符串以将其传递给某些函数,请使用

作为替代。

例如在熊猫中:

pd.read_sql(“ SELECT * FROM Persons [Last Name] ='Western'”,con)