我有两张桌子
用户包含用户数据
手机
四千四百七十七亿七千七百七十四万四千四百四十四
四千四百七十七亿七千七百七十五万五千五百五十五
七十七亿七千七百七十五万五千五百五十五
七十七亿七千七百七十六万六千六百六十六
MOBILEPHONES包含手机号码
电话号码
七十七亿七千七百七十四万四千四百四十四
七十七亿七千七百七十三万三千三百三十三
七十七亿七千七百七十五万五千五百五十五
七十七亿七千七百七十六万六千六百六十六
如果我运行follow SQL,它只返回完全匹配的数字,而不执行通配符搜索。
SELECT MobilePhones.*, users.FirstName FROM MobilePhones
LEFT JOIN users
ON (users.MobilePhone= MobilePhones.`Telephone No`)
WHERE users.MobilePhone LIKE CONCAT('%', MobilePhones.`Telephone No`, '%')
我回来了
七十七亿七千七百七十五万五千五百五十五
七十七亿七千七百七十六万六千六百六十六
我想要的是
七十七亿七千七百七十五万五千五百五十五
七十七亿七千七百七十六万六千六百六十六
四千四百七十七亿七千七百七十五万五千五百五十五
四千四百七十七亿七千七百七十四万四千四百四十四
最佳答案
我想你可能想把你的WHERE
子句移到连接的ON
子句中,替换现有的ON
子句,这是精确匹配的:
SELECT MobilePhones.*, users.FirstName
FROM MobilePhones
LEFT JOIN users ON users.MobilePhone LIKE CONCAT('%', MobilePhones.`Telephone No`, '%')
关于mysql - 将两个表与LIKE和CONCAT比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10637339/