我试图删除"坏词"从一张表中使用另一张表中令人反感的单词列表,但令人反感的单词通常是引理形式。因此,我无法始终进行完全匹配。我需要使用LIKE量词,例如WHERE text LIKE'%badword%'
我是否有办法尝试从另一个表中选择包含单词的所有行,但具体使用LIKE子句。
我将举例说明我的目的。这没有用,但是应该让你知道我想做什么:
SELECT *
FROM entry
WHERE headword LIKE IN
( SELECT word
FROM sies )
现在我知道LIKE并不适合这个查询,但是我试图让这个效果发挥作用。
编辑: 这是我尝试过的最新内容,但没有用:
SELECT s.*
FROM sies AS s, entry AS e
WHERE e.headword LIKE ('%' + s.word + '%')
答案 0 :(得分:6)
您可以尝试以下查询:
select s.* from sies s, entry e where s.words like '%' || e.word || '%'
我假设sies
是你的常规表,而entry
是带有脏词的表。
您可以在此处查看Demo。
答案 1 :(得分:0)
你可以试试这个:
SELECT e.*
FROM entry e
JOIN sies s ON MATCH(e.words) AGAINST (s.words IN BOOLEAN MODE)