如何根据另一个表中的%LIKE%值过滤表

时间:2014-07-02 16:05:24

标签: mysql sql sql-server database phpmyadmin

所以我有tableA和tableB。 A是原始域数据,如http://www.cnn.com,其中B将其修剪得很整齐,如cnn.com。我需要拉出tableA中不在tableB中的网站。我想左边的连接有一些疯狂的%LIKE%运算符放在那里。

这是我到目前为止所做的,但它不起作用。

SELECT tableA.domain, sum(tableA.views) views FROM `tableA` LEFT JOIN tableB ON tableA.domain %LIKE% tableB.name WHERE tableB.name IS NULL AND GROUP BY tableA.domain ORDER BY views DESC
谢谢你!

2 个答案:

答案 0 :(得分:2)

试试这个

 SELECT tableA.domain, sum(tableA.views) views FROM `tableA` 
 LEFT JOIN tableB ON tableA.domain  LIKE CONCAT('%', tableB.name ,'%')
 WHERE tableB.name IS NULL 
 GROUP BY tableA.domain 
 ORDER BY views DESC

你的尝试中有两个错误。

1- LIKE CONCAT('%', tableB.name ,'%') //您必须使用CONCAT

2-删除AND之前的group by

答案 1 :(得分:0)

假设%大约是您要比较的值,而不是LIKE关键字本身。

应该是

SELECT column
FROM table
WHERE column LIKE '%pattern%';