2015-04-21 152 views
2

我试图从表中使用另一个表中的冒犯性单词列表中删除“坏词”,但冒犯性词经常以词条形式出现。因此,我不能总是做一个精确的匹配。我需要使用LIKE量词,例如文字LIKE'%badword%'SQLite,从另一个表中选择字段“like”字段

有没有办法让我尝试从另一个表中选择包含单词的所有行,但是通过专门使用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 + '%') 

回答

3

你可以试试下面的查询:

select s.* from sies s, entry e where s.words like '%' || e.word || '%' 

在这里,我假设,sies是你的常规表和entry是脏字的表格。

您可以在这里检查Demo

0

你可以试试这个:

SELECT e.* 
    FROM entry e 
    JOIN sies s ON MATCH(e.words) AGAINST (s.words IN BOOLEAN MODE) 
+0

这是否在SQLite3中工作?我试过这个,但它不是很有效。尽管这是一个非常有趣的答案。感谢您的答复。非常感激。 – amateurjustin

相关问题