【问题标题】:Comparing two tables with a LIKE and CONCAT %用 LIKE 和 CONCAT % 比较两个表
【发布时间】:2012-05-25 03:00:37
【问题描述】:

我有两张桌子

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

【问题讨论】:

    标签: mysql pattern-matching sql-like concat


    【解决方案1】:

    我认为您可能希望将您的 WHERE 子句移动到连接的 ON 子句中,替换现有的 ON 子句,这是完全匹配的:

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

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 2012-06-03
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      相关资源
      最近更新 更多