使用like运算符和concate的mysql查询
我有一个表,其中有一个字段名作为路径(文本字段),表的条目如下 表名:员工使用like运算符和concate的mysql查询,mysql,sql,concat,Mysql,Sql,Concat,我有一个表,其中有一个字段名作为路径(文本字段),表的条目如下 表名:员工 EmpID path 1 442 2 443-442 我使用了以下查询 SELECT EmpID FROM Employee WHERE concat('-',path,'-') like '%442%' 上面的查询返回EmpID 1和2,但我仍然不清楚上面的查询在内部是如何工作的,我只是使用了
EmpID path
1 442
2 443-442
我使用了以下查询
SELECT EmpID FROM Employee WHERE concat('-',path,'-') like '%442%'
上面的查询返回EmpID 1和2,但我仍然不清楚上面的查询在内部是如何工作的,我只是使用了hit-and-trial方法,幸运的是我得到了正确的结果。。现在有人能解释一下上面的查询是如何在内部工作的吗
提前谢谢 您的查询采用路径,即
422
,在末尾添加连字符以将其转换为-422-
,然后检查字符串422
是否存在于其中的任何位置(确实存在)
%是任意数量的任意字符的通配符。
-422-
是否像字符串(任何内容)422(任何内容)
?是的
这将在不使用连字符连接的情况下给出完全相同的结果。您可以阅读更多关于的信息,确定意味着它将只返回包含422的记录,但如果我不在
中添加连字符,如“%422%”
则返回包含422的所有记录,而不管连字符或其他字符是否有。