我知道如何使用'全文搜索MySQL'。我想知道的是如何搜索单词的文字。例如: - 我们在mysql中有三个记录如下全文搜索MySQL
1.)这是一个程序员的地方。 2)人们访问旅行目的地。
3.)程序员为了编码的目的访问这个地方的网站。
现在,当用户搜索“地方程序员
继应该是输出
应该包含任何顺序
1)从句子的所有单词输出行这是一个地方为程序员。
2.)程序员访问此地方网站为编码的目的。
谢谢你的帮助。
我知道如何使用'全文搜索MySQL'。我想知道的是如何搜索单词的文字。例如: - 我们在mysql中有三个记录如下全文搜索MySQL
1.)这是一个程序员的地方。 2)人们访问旅行目的地。
3.)程序员为了编码的目的访问这个地方的网站。
现在,当用户搜索“地方程序员
继应该是输出
应该包含任何顺序
1)从句子的所有单词输出行这是一个地方为程序员。
2.)程序员访问此地方网站为编码的目的。
谢谢你的帮助。
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
而且你还必须在列 – Parangan
中添加全文索引我刚刚在mysql phpmyadmin中试过它,我创建了一个随机表并使用上面的相同行填充它,并尝试了查询,但它返回的是空集restaura – user3578478
随机表的模式是什么? – dannym87
使用全文搜索,索引中的列
之前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)
您可以尝试只对第一个字看,然后查找在结果中第二个,依此类推。 – Amirshk
尝试在布尔模式下进行全文搜索 –
您能否以SQL查询的形式提供您的答案,这将有助于很多 – user3578478