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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你如何在MySql中实际搜索反引号?相关的知识,希望对你有一定的参考价值。

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

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

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

答案

您应首先检查服务器上是否启用了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 '`';

以上是关于你如何在MySql中实际搜索反引号?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 中的反斜杠 \,真是太坑了!!

MySQL 中的一些坑

这MySQL里的反斜杠(\)也太坑了吧!!真是醉了

mysql的反引号backtick

在go语言中,如何在反引号中调用变量的值而不是变量名

如何解决 mysqlERROR 1064