Jar*_*ier 5 php mysql comparison filter
我有两个mysql表.一个是坏词列表,另一个是与坏词列表进行比较的表.基本上我想过滤掉并返回一个行列表,其中包含在坏词表中没有出现任何单词的域.一些示例表:
坏词列表
+----------+------------------+
| id | words |
+----------+------------------+
| 1 | porn |
| 2 | sex |
+----------+------------------+
Run Code Online (Sandbox Code Playgroud)
要比较的域表
+----------+------------------+
| id | domain |
+----------+------------------+
| 56 | google.com |
| 57 | sex.com |
+----------+------------------+
Run Code Online (Sandbox Code Playgroud)
我想要返回结果如
+----------+------------------+
| id | domain |
+----------+------------------+
| 56 | google.com |
+----------+------------------+
Run Code Online (Sandbox Code Playgroud)
需要注意的是,这些表没有任何共同点,所以我甚至不确定这是最好的方法.我在PHP 中使用了一个比较函数,但这似乎太慢了几十万行才能搜索.
可以从mysql获取。像这样:
SELECT
d.*
FROM
domains d
LEFT JOIN
words w ON(d.domain LIKE CONCAT('%',w.word,'%') )
GROUP BY
d.domain
HAVING
COUNT(w.id) < 1
Run Code Online (Sandbox Code Playgroud)
但这并不是最优的,并且随着两个表中的记录越来越多,它会变得越来越慢。
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |