我在 MySQL 5.6.19 中有以下结构。
CREATE TABLE `metadata` (
`md5` char(32) NOT NULL,
`match` enum('none','md5','similarity') DEFAULT NULL
)
我在执行这样的查询时出错:
select * from metadata where match = 'md5';
错误是:
ERROR 1064 (42000): 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 '= 'md5'' at line 1
表和行中有多个条目可以匹配查询。但是 MySQL 拒绝这样做。知道原因吗? 谢谢!
最佳答案
MATCH
是 MySQL 中的保留关键字:http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html .您应该将您的字段名称括在反引号中以使其工作:
select * from metadata where `match` = 'md5';
关于带有枚举值的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26567052/