使用%Wildcard选择没有完全匹配的查询

时间:2015-03-17 19:20:50

标签: mysql sql

您好我已经解决了一个问题,我需要帮助,使用此代码

SELECT *
FROM  new_products
WHERE 
NOT EXISTS
(
  SELECT ProductID
  FROM old_products
  WHERE 
         old_products.ProductID
         LIKE
         new_products.ProductID
)

这是为了给我带来new_products中不属于old_products的项目(只是要选择的新产品)。

但是,当产品ID varchar类似于91或91b'它找不到,只有在两个表中它们都是完全相同的 varchar。

我尝试使用像(比如%ProductID%)这样的东西:

    WHERE 
           old_products.ProductID 
           LIKE 
           ('%' + new_products.ProductID + '%')

然而,结果根本不起作用,它认为两者都是唯一的,反之亦然。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

在MySQL中,您的表达式('%'+ new_products.ProductID +'%')的计算结果可能为0。 试试这个:

CONCAT('%' , new_products.ProductID , '%')

答案 1 :(得分:0)

我设法按照@Farhęg用户的建议。像REGEXP一样改变实际上有效。非常感谢。