在 PHP 和 MYSQL 中对搜索完整标题及其单词进行单个查询?

Ram*_*mal 5 php mysql search sql-like

我想根据整个标题名称和标题词搜索产品。可以LIKE使用UNION. 我的数据库title(charchar(550)) = Colorzone Men's Casual Wear Red Cotton Shirt不是全文—— PHP 和 MYSQL 的最佳搜索算法是什么?

但是我需要将搜索结果(第一Cotton Shirt记录,第二 Cotton记录和第三Shirt记录。不应显示混合的所有记录)作为单个查询

MYSQL 查询:例如:标题 =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.
Run Code Online (Sandbox Code Playgroud)

假设用户标题有 4 个或更多单词,那么它将使用 进行 4 个或更多查询UNION。我们将使用单个查询进行此搜索?

sha*_*an9 0

title您可以在布尔模式下使用全文搜索against ('Cotton','Shirt')ORDER BY score DESC 这应该会为您提供所需的输出

我没有尝试 mysql 但根据 MySQL Doc 中解释的理论它会工作