2017-01-23 19 views
0

我的問題是,我想從數據庫中選擇一行,這是最相似的搜索文本。從數據庫中選擇一行字符串

$string = "I want to buy a new notebook"; 

和DB我有,例如:

1st row| keywords: buy notebook | message: okay i will help u | 
2nd row| keywords: sell notebook | message: okay i will help u | 
3rd row| keywords: notebook exchange | message: okay i will help u | 

而結果將是第一行,因爲它包含筆記本電腦,甚至購買並沒有只包含筆記本的所有行。

我希望你明白我想要什麼。

感謝。

+3

查看數據庫的全文搜索。猜你想要這個主題起始者不想要的東西;):http://stackoverflow.com/questions/2282679/mysql-fulltext-search-only-results-that-c​​ontain-all-words –

+0

謝謝你也:) –

回答

0

您可以使用全文搜索...可能您可以獲得解決方案。

MySQL服務器中的全文搜索允許用戶在MySQL表中針對基於字符的數據運行全文查詢 。在對 表運行全文查詢之前,必須在表上創建一個 全文索引。

SELECT * FROM your_table_name WHERE MATCH(keywords,message) AGAINST ('I want to buy a new notebook' IN NATURAL LANGUAGE MODE); 

請仔細閱讀本文檔 - http://www.w3resource.com/mysql/mysql-full-text-search-functions.php

+0

謝謝你,兄弟 :) –

0

是否有可能,我想尋找一個排這是最相似的詞的一部分?例如:

$string = "Basicly i am playing a game." 

但在DB我只有

1st row| keywords: basic, play | message: okay i will help u | 
2nd row| keywords: game, t-shirt | message: okay i will help u | 

即使我只有在字符串「Basicly」,並沒有「基本」?

感謝。

相關問題