使用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的所有记录,而不管连字符或其他字符是否有。