我知道如何使用'全文搜索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