错误1064#使用mysql Like关键字

时间:2014-05-04 06:44:11

标签: mysql sql mysql-error-1064 sql-like

我的SQL查询是:

mysql> select emp_id where classes like '%'XII'%';

但是我收到了这个错误:

  

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'%'%'%'%''在第1行

我可以理解错误是由于我在相似的论点中使用的单引号,但我有字符串说' X',' XI'' XII'在我的数据库中。这就是我用单引号查询的原因,因为如果我在字符串' XI',' XII'中查询类X.然后它将返回那些教授XI和XII标准的人的emp_id,这是不可取的。

我可以在类似参数中使用转义字符作为特殊字符。

2 个答案:

答案 0 :(得分:1)

使用double qoutes括起搜索模式

select emp_id from tableName 
where classes like "%'XII'%";

请不要将值存储为逗号分隔字符串,这不是一个好的数据库设计实践。 See why here , esp Lasse V. Karlsen answer

所以而不是

empid   classes
1       'X','XI','XII'

将其存储为单独的行

empid   classes
1       'X'
1       'XI'
1       'XII'

答案 1 :(得分:1)

您可以通过加倍(')来转义单引号(''):

select emp_id FROM my_table where classes like '%''XII''%';

注意:这是两个单引号,而不是双引号。