我的SQL查询是:
mysql> select emp_id where classes like '%'XII'%';
但是我收到了这个错误:
错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在'%'%'%'%''在第1行
我可以理解错误是由于我在相似的论点中使用的单引号,但我有字符串说' X',' XI'' XII'在我的数据库中。这就是我用单引号查询的原因,因为如果我在字符串' XI',' XII'中查询类X.然后它将返回那些教授XI和XII标准的人的emp_id,这是不可取的。
我可以在类似参数中使用转义字符作为特殊字符。
答案 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''%';
注意:这是两个单引号,而不是双引号。