在MYSQL中查找结尾与另一个表的列匹配的列的所有行
好的,我有一个表:有一列的ad域,我想在另一个名为history的表中找到所有行,其中有3列:key、domain、time 我想做一些类似于在MYSQL中查找结尾与另一个表的列匹配的列的所有行,mysql,Mysql,好的,我有一个表:有一列的ad域,我想在另一个名为history的表中找到所有行,其中有3列:key、domain、time 我想做一些类似于 SELECT * FROM history WHERE domain LIKE "%{ALL_DOMAIN_COLUMN_FROM_ad-domains_TABLE}" 这可能吗 一些数据例如: 广告域名: 历史: 结果应该是 key domain ------------------------------------ 2 s
SELECT * FROM history WHERE domain LIKE "%{ALL_DOMAIN_COLUMN_FROM_ad-domains_TABLE}"
这可能吗
一些数据例如:
广告域名:
历史:
结果应该是
key domain
------------------------------------
2 subads.ads.com
4 moreads.com
5 whoa.moreads.com
6 000.hi.whoa.moreads.com
您要查找的查询类似于:
SELECT * FROM history
INNER JOIN ad-domain ON history.domain LIKE CONCAT('%', ad-domain.domain, '%')
是有关该主题的更多信息。您需要将
连接上的两个表,如条件。如果可能有多个匹配项,则需要对结果进行DISTINCT
。或者,如果您不允许使用JOIN
,您可以在存在的地方使用
。嗯,我从来没有想过在JOIN条件下使用LIKE。这就做到了(基本上,只需删除concat语句中的第一个“%”)。尽管我想,在2GB的桌面上运行这会花费大量的时间。
key domain
------------------------------------
2 subads.ads.com
4 moreads.com
5 whoa.moreads.com
6 000.hi.whoa.moreads.com
SELECT * FROM history
INNER JOIN ad-domain ON history.domain LIKE CONCAT('%', ad-domain.domain, '%')