我正在使用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 作为建议。任何人都可以告诉我如何编写查询以获得这些结果。谢谢
答案 0 :(得分:5)
LIKE运算符不会帮助你。您需要查看FULLTEXT searching。如果您不愿意使用MyISAM(它确实有drawbacks),您可以查看Sphinx等替代方案。
答案 1 :(得分:3)
您必须使用全文搜索。在使用它之前,请确保检查数据库引擎是否支持FULL Text。此外,您必须索引标题,描述等字段,无论您有什么支持全文。
你可以参考
另请注意:
mysqli
或PDO