假设我们有一个名为 articles
的数据表,其中有一个名为 content
的列,用于存储新闻文章的文本内容。这个列已经建立了FULLTEXT
索引。
ALTER TABLE articles ADD FULLTEXT(content);
示例1:使用AND
操作符
要找出同时包含“apple”和“banana”的文章,可以这样查询:
SELECT * FROM articles WHERE MATCH(content) AGAINST('+apple +banana' IN BOOLEAN MODE);
+
符号表示该单词必须出现在结果中。
示例2:使用OR
操作符
要找出包含“apple”或“banana”(或两者都有)的文章,可以这样查询:
SELECT * FROM articles WHERE MATCH(content) AGAINST('apple banana' IN BOOLEAN MODE);
在布尔模式下,默认的行为就像使用OR
操作符。
示例3:使用NOT
操作符
要找出包含“apple”但不包含“banana”的文章,可以这样查询:
SELECT * FROM articles WHERE MATCH(content) AGAINST('+apple -banana' IN BOOLEAN MODE);
-
符号表示该单词不能出现在结果中。
示例4:使用通配符
布尔搜索还支持通配符*
,它可以匹配任意数量的字符。例如,要找出以“appl”开头的任何词的文章,如“apple”,“application”等:
SELECT * FROM articles WHERE MATCH(content) AGAINST('appl*' IN BOOLEAN MODE);
示例5:短语搜索
要找出包含短语“red apple”的文章,你可以用双引号将短语括起来:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。