1

我有两张桌子

USERS 包含用户数据

手机
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

4

1 回答 1

1

我认为您可能希望将您WHERE的子句移动到ON联接子句中,替换现有的ON子句,该子句正在执行完全匹配:

SELECT MobilePhones.*, users.FirstName 
FROM MobilePhones
LEFT JOIN users ON users.MobilePhone LIKE CONCAT('%', MobilePhones.`Telephone No`, '%')
于 2012-05-17T14:13:23.507 回答