0

文字列の一部を含む列を使用してテーブルからデータをフェッチしようとしています

テーブル検索データ:

id      data

 1      news   
 2      today     
 3      latest

「ニュース」というキーワードを使用する場合

 select * from search_data where data like '%news%'

結果を取得しています。しかし、キーワード「最新ニュース」を使用すると

select * from search_data where data like '%latest news%' 

空の結果セットを表示して動作していません。

誰かがクエリを手伝ってくれますか。

ありがとう。

4

4 に答える 4

1

MATCH AGAINSTFULLTEXTを使用できるようにインデックスを追加できます。

select 
  * 
from 
  search_data 
where 
  match(data) against ('latest news' IN BOOLEAN MODE) 

これが最も効率的な方法です。詳しくはこちらをご覧ください

于 2013-06-05T09:51:17.117 に答える
0

私はあなたが何を意味するのか分かりませんが、私はあなたが何かをしたいと思っていると思いますこの select * from search_data where data like '%latest%' OR data like '%news%'

于 2013-06-05T09:56:09.723 に答える
0

It's because you're looking for the complete string 'latest news' with text either side of it. You will need to do where data like '%news%' or data like '%latest%' to achieve a search for both keywords where they are not contained on the same row

于 2013-06-05T09:50:09.190 に答える
0

select * from search_data このクエリで '%latest news%' のようなデータが最新のニュースに言及している場合、結果には文字列に「最新のニュース」が含まれている必要があることを意味します。これは、データセットには存在しないため、最新のニュースとニュースが別々に提示される可能性があるためです。クエリで「or」および「and」演算子を使用する

于 2013-06-05T10:03:20.483 に答える