【问题标题】:mysql query with like operator and concate带有like运算符和concat的mysql查询
【发布时间】:2013-11-26 18:42:45
【问题描述】:

我有一个表格,其中有一个字段名称作为路径(文本字段)表格的条目如下所示

表名:员工

EmpID                  path

1                      442

2                      443-442

我使用了以下查询

SELECT EmpID FROM Employee WHERE concat('-',path,'-') like '%442%' 

上面的查询返回 EmpID 1 和 2,但我仍然不清楚上面的查询是如何在内部工作的,我只是使用 hit and trial 方法,幸运的是我得到了正确的结果.. 现在谁能解释一下上面的查询在内部工作

提前致谢!!

【问题讨论】:

    标签: mysql sql concat


    【解决方案1】:

    您的查询采用路径,即422,在末端添加连字符以将其转换为-422-,然后检查字符串422 是否存在于其中的任何位置(确实如此)。

    % 是任意数量的任意字符的通配符。 -422- 和字符串 (anything)422(anything) 一样吗?是的。

    这将在没有连字符连接的情况下给出完全相同的结果。

    【讨论】:

    • 好的意味着它只会返回包含422的记录,但如果我不会在中添加连字符
    • Like '%422%' 返回所有包含 422 的记录,无论是否包含连字符或任何其他字符。
    【解决方案2】:

    你可以阅读更多关于LIKE here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-16
      • 2011-09-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多