将两个表与LIKE和CONCAT%进行比较

时间:2012-05-17 14:10:39

标签: mysql pattern-matching sql-like concat

我有两张桌子

USERS 包含用户数据

Mobilephone
447777744444
447777755555
7777755555个
7777766666

MOBILEPHONES 包含手机号码

电话号码 7777744444个
7777733333个
7777755555个
7777766666

如果我运行跟随SQL,它只返回完全匹配且不执行通配符搜索的数字。

SELECT MobilePhones.*, users.FirstName FROM MobilePhones
LEFT JOIN users
ON (users.MobilePhone= MobilePhones.`Telephone No`)
WHERE users.MobilePhone LIKE CONCAT('%', MobilePhones.`Telephone No`, '%')

我被退回

7777755555
7777766666

我想要的是

7777755555
7777766666个
447777755555
447777744444

1 个答案:

答案 0 :(得分:1)

我想您可能希望将WHERE子句移动到连接的ON子句中,替换现有的ON子句,它正在进行完全匹配:

SELECT MobilePhones.*, users.FirstName 
FROM MobilePhones
LEFT JOIN users ON users.MobilePhone LIKE CONCAT('%', MobilePhones.`Telephone No`, '%')