Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用类似mysql的关键字时出现错误1064#_Mysql_Sql_Mysql Error 1064_Sql Like - Fatal编程技术网

使用类似mysql的关键字时出现错误1064#

使用类似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

我的sql查询是:

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''%';