2017-01-23 5 views
0

私の問題は、検索したテキストと最も類似している1行のdbから選択したいということです。文字列でdbから1行を選択する

$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

は、それが可能に私が単語の一部に最も類似している行を検索したいことをしていますか?例えば:私は、文字列「Basicly」なし「基本」を持っている場合でも

$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 | 

がありますか?

ありがとうございました。

関連する問題