我想找到与全文搜索匹配的所有行,其中有一对对,但又不匹配另一列中的相同文本。
这两种方法似乎都有效
SELECT * FROM docs WHERE MATCH(title, descript) AGAINST ('energy' IN BOOLEAN MODE) AND NOT MATCH(categories) AGAINST ('energy' IN BOOLEAN MODE);
或使用子查询:
SELECT * FROM docs WHERE MATCH(title, descript) AGAINST ('energy' IN BOOLEAN MODE) AND id NOT IN (SELECT id FROM docs where MATCH(categories) AGAINST ('energy' IN BOOLEAN MODE));
docs字段设置了相关的全文本索引。
有什么理由更喜欢一个?
在我正在使用的(小型)数据库上,它们都非常快,太快而无法可靠地测量。
谢谢您的建议。