2017-01-01 86 views
1

我知道如何获得包含几句话的所有结果:MySQL的 - 全文检索 - 反向

SELECT * FROM `table` WHERE MATCH (`row`) AGAINST ('+word1 +word2' IN BOOLEAN MODE) 

但是我怎么都可以导致其不含话:“字词1”,“单词2” ??我需要操作员,像“不在”。那么如何从数据库中获取所有不包含查询中特定单词的记录(使用全文搜索)呢?

谢谢。

+0

'NOT IN'是一个有效的构造。 –

+0

我知道,这就是为什么我在这里问它的原因...我想要一些替代方法来获得所有不含特定单词的结果。 – Majkson

+0

也许你应该更新你的问题,然后不要阅读,“我需要[...]不喜欢的东西”,而是告诉我们更多具体的东西你要找的东西。 –

回答

1

你可以使用NOT否定条件:

SELECT * FROM `table` WHERE NOT MATCH (`row`) AGAINST ('+word1 +word2' IN BOOLEAN MODE) 

MATCH条件的行真正在那里发现的话,和它没有找到的话。使用NOT可以反转每行的真/假结果。

就像:

SELECT * FROM `table` WHERE NOT row = 'abc123' 

将是真实的是具体值 'ABC123' 的所有行。

+0

“不匹配” - 就是这样。谢谢 ! – Majkson