我需要在mysql中搜索包含字符`的字符串 我正在尝试:
select * from transactions where transactions.calculatorCode like "%`%";
,但它返回所有记录。 我想念什么吗?
答案 0 :(得分:1)
您应该首先检查服务器上是否启用了ANSI_QUOTES模式
mysql> SELECT @@sql_mode;
如果在结果中看到它,那么您应该只用单引号括住字符串文字,因为双引号会将其解释为IDENTIFIERS(列,表等) ...)而不是字符串,这是标准的SQL行为。
所以您的查询应该变成
select * from transactions where transactions.calculatorCode like '%`%';
无论如何,您应该避免使用双引号将字符串引起来,因为您的SQL代码可移植性将受到严重影响。始终使用单引号是经验法则。
如果仍然无法正常运行,您可以尝试使用REGEXP_LIKE:
select * from transactions WHERE REGEXP_LIKE(calculatorCode, '`');
select * from transactions WHERE calculatorCode RLIKE '`';