带有枚举值的MySQL查询

时间:2014-10-25 20:42:52

标签: mysql sql enums reserved-words

我在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';

错误是:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在第1行'='md5''附近使用的语法

表中有多个条目和行可以匹配查询。但MySQL拒绝这样做。有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

MATCH是MySQL中的保留关键字:http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html。您应该在反引号中包含您的字段名称以使其正常工作:

select * from metadata where `match` = 'md5';