【问题标题】:Mysql Like containing wildcart giving unexpected resultMysql Like 包含通配符给出意想不到的结果
【发布时间】:2014-05-05 15:06:07
【问题描述】:

我在一个非常简单的 MySQL 数据库表中有一个 varchar 列,其中包含 2 种不同类型的产品引用:

一个喜欢:14521_451_288,其他喜欢 45742154

为了能够管理它们,我使用以下代码:

WHERE ref LIKE '%_%'

但是所有结果都会返回,即使是没有下划线的引用。我在这里缺少一些基本的东西吗?

【问题讨论】:

  • _ 代表 LIKE 表达式中的任何一个字符。这就是您返回所有值的原因。您需要转义 _ 字符。

标签: mysql sql wildcard


【解决方案1】:

_ 代表 LIKE 表达式中的任何一个字符。这就是您返回所有值的原因。您需要转义 _ 字符。

试试这个:

WHERE ref LIKE '%\_%';

参考文献

String Literals on MySQL Reference Manual

Related SO question

【讨论】:

    【解决方案2】:

    尝试使用

    where ref <> instr('_') > 0
    

    因为_ 代表like 表达式中的任何单个 字符,而% 代表表达式中的任何字符s

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 2017-01-05
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多