2017-01-23 55 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”,并没有“基本”?

感谢。