使用类似mysql的关键字时出现错误1064#
我的sql查询是:使用类似mysql的关键字时出现错误1064#,mysql,sql,mysql-error-1064,sql-like,Mysql,Sql,Mysql Error 1064,Sql Like,我的sql查询是: mysql> select emp_id where classes like '%'XII'%'; 但我得到了这个错误: 错误1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行的“where”类(如“%”XII“%”)附近使用的正确语法 我可以理解这个错误是由于我在like参数中使用了单引号造成的,但我的数据库中有字符串,比如“X”、“XI”、“XII”。这就是为什么我用单引号查询,因为如果我在字符串“席”,“XII
mysql> select emp_id where classes like '%'XII'%';
但我得到了这个错误:
错误1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行的“where”类(如“%”XII“%”)附近使用的正确语法
我可以理解这个错误是由于我在like参数中使用了单引号造成的,但我的数据库中有字符串,比如“X”、“XI”、“XII”。这就是为什么我用单引号查询,因为如果我在字符串“席”,“XII”中查询X类,那么它将返回那些教习席和XII标准的不受欢迎的人的EnviID。
我可以对like参数中的特殊字符使用转义字符。使用双qoutes将搜索模式括起来
select emp_id from tableName
where classes like "%'XII'%";
请不要将值存储为逗号分隔的字符串,这不是一个好的数据库设计实践
所以不是
empid classes
1 'X','XI','XII'
将其存储为单独的行
empid classes
1 'X'
1 'XI'
1 'XII'
您可以通过将单引号(
”
)加倍(”
)来对其进行转义:
注意:这是两个单引号,不是双引号。您忘记了来自子句的
。
select emp_id FROM my_table where classes like '%''XII''%';