我知道如何使用'全文搜索MySQL'。我想知道的是如何搜索文字的单词。例如: - 我们在mysql中有三条记录,如下所示
1。)这是程序员的地方 2.)人们前往旅游目的地 3.)程序员访问此地点以进行编码。
现在当用户搜索“程序员的地方”
时以下应为输出
它应该以任何顺序输出包含句子中所有单词的行
1.)这是程序员的地方 2。)程序员访问此地点网站以进行编码。
谢谢你的帮助。
答案 0 :(得分:1)
MySQL有MATCH..AGAINST用于全文搜索。请尝试以下方法,
SELECT * FROM <table> WHERE MATCH(<column>) AGAINST('+place +for +programmers' IN BOOLEAN MODE)
+ +基本上意味着AND(你可以使用 - 用于OR)
https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html
答案 1 :(得分:0)
在使用全文搜索之前,请对列进行索引
ALTER TABLE <table> ADD FULLTEXT(column);
验证它已经是全文
SELECT
index_name, group_concat(column_name) as columns
FROM
information_Schema.STATISTICS
WHERE
table_schema = 'your_db_name'
AND table_name = 'table_name'
AND index_type = 'FULLTEXT'
GROUP BY
index_name;
然后使用以下SQL
SELECT *
FROM <table>
WHERE MATCH(<column>) AGAINST('+place +for +programmers' IN BOOLEAN MODE)