你如何在MySql中实际搜索反引号?

问题描述 投票:0回答:1

我需要在我正在尝试的mysql中搜索包含字符`的字符串:

select * from transactions where transactions.calculatorCode like "%`%";

但它返回所有记录。我错过了什么吗?

mysql escaping
1个回答
1
投票

您应首先检查服务器上是否启用了ANSI_QUOTES模式

mysql> SELECT @@sql_mode;

如果你在结果中看到它,那么你应该只用单引号包围你的字符串litterals,因为双引号会将它们解释为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 '`';
© www.soinside.com 2019 - 2024. All rights reserved.