簡體   English   中英

PHP MYSQL LIKE,用於匹配描述中的多個單詞

[英]PHP MYSQL LIKE for match multiple word in description

我正在使用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 JACKET 8 FEET作為建議。 誰能告訴我如何編寫查詢以獲得此類結果。 謝謝

LIKE運算符將在這里沒有幫助。 您需要研究FULLTEXT搜索 如果您不願意使用MyISAM(確實有其缺點 ),則可以考慮使用Sphinx之類的替代方法。

您必須使用全文搜索。 在使用它之前,請確保檢查數據庫引擎是否支持FULL Text。 此外,您還必須為標題(如標題,說明)等字段建立索引,以支持全文。

你可以參考

另請注意:

  • 不建議使用MySQL,請避免使用它,建議使用mysqliPDO
  • 使用參數化查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM