0

PHPを使用してajax検索関数を作成しています。正常に動作していますが、フィルタリングされた結果にはほとんど問題がありません。

以下のような商品説明があります

POWER CORD C13-C14 SVT 250V 10AMP GREEN JACKET 8 FEET

ただし、ユーザーが電源コードを緑色で検索して も、結果は表示されません。上記の言葉のせいで、これは同じ順序ではないと思います。

これが私のSQLコードです-$qrはユーザー検索ワードです

SELECT 
      product_name,product_desc
      FROM j25_virtuemart_products,j25_virtuemart_products_en_gb
      WHERE         
       j25_virtuemart_products.virtuemart_product_id =j25_virtuemart_products_en_gb.virtuemart_product_id 
       AND j25_virtuemart_products.published=1 
       AND (product_name LIKE '%$qr' OR product_desc LIKE '%$qr

ユーザーが電源コードグリーンを検索するときは、提案としてPOWER CORD C13-C14 SVT 250V 10AMP GREEN JACKET8FEETを入手する必要があります。誰かがそのような結果を得るためのクエリを書く方法を教えてもらえますか?ありがとうございました

4

2 に答える 2

5

LIKE演算子は、ここでは役に立ちません。全文検索を調べる必要があります。MyISAMを使用したくない場合(欠点があります)、 Sphinxなどの代替手段を検討できます。

于 2012-08-30T09:09:02.483 に答える
3

全文検索を使用する必要があります。使用する前に、データベースエンジンがフルテキストをサポートしているかどうかを確認してください。また、全文をサポートするために必要なタイトル、説明などのフィールドにインデックスを付ける必要があります。

あなたは参照することができます

また、次の点にも注意してください。

  • Mysqlは非推奨です。使用しないでくださいmysqliPDO
  • パラメータ化されたクエリを使用する
于 2012-08-30T09:17:09.807 に答える