代码之家  ›  专栏  ›  技术社区  ›  Merc

你实际上是如何在MySql中搜索backtick的?

  •  0
  • Merc  · 技术社区  · 7 年前

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

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

    但它正在返回所有记录。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Thomas G    7 年前

    您应该首先检查服务器上是否启用了ANSI\u QUOTES模式

    mysql> SELECT @@sql_mode;
    

    如果你在结果中看到了它,那么你应该在你的字符串周围加上 双引号 将它们解释为标识符(列、表等),而不是字符串,这是标准的SQL行为。

    所以你的问题应该是

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

    无论如何,您应该避免使用双引号将字符串括起来,因为SQL代码的可移植性将受到严重影响。总是使用单引号是一个经验法则。

    如果仍然不起作用,您可以尝试使用REGEXP\u,例如:

    select * from transactions WHERE REGEXP_LIKE(calculatorCode, '`');
    select * from transactions WHERE calculatorCode RLIKE '`';
    
    推荐文章