我想根据整个标题名称和标题词来搜索产品。可以使用LIKE
来在mysql中搜索产品UNION
。我的数据库title(charchar(550)) = Colorzone Men's Casual Wear Red Cotton Shirt
不是全文-什么是针对PHP和MYSQL的最佳搜索算法?
但我需要下面的搜索结果(第一次:Cotton Shirt
记录,第二 Cotton
记录和第三:Shirt
。记录应该没有显示所有记录的混合)作为单查询
MYSQL查询:对于Ex:标题=Cotton Shirt
SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Cotton Shirt%' //Get Whole Title products.
UNION
SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Cotton%' //Get list for first word Title products.
UNION
SELECT title FROM zapstore_ecom_products WHERE title LIKE '%Shirt%' //Get list for last word Title products.
假设用户标题有4个或更多的单词,那么它将使用进行4个或更多的查询UNION
。我们将通过单个查询进行搜索吗?
您可以title
在布尔模式下使用FULLTEXT搜索against ('Cotton','Shirt')
,ORDER BY score DESC
这应该为您提供所需的输出
我没有尝试过mysql,但是根据MySQL Doc中解释的理论,它可以工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句