在同一页上我有两个搜索结果。第一个从当前页面之前的页面自动生成。我有一个名为 Brand Name 的字段 我希望第二个搜索顺序基于第一个搜索的值或文本 .例如,如果 Brand= X 所有 X 品牌都位于第二次搜索的顶部
$rbrand = $row [Brand_name] // Brand name from first search result
我试过这个来排序第二个搜索结果
SELECT *
FROM tablename
ORDER
BY IF(Brand_Name LIKE '%$rbrand%',0,1)
最佳答案
有多种方法可以实现这一点。
你可以使用CASE, WHEN, THEN
SELECT CASE WHEN Brand_Name LIKE '%$rbrand%' THEN 0 ELSE 1 END AS Brand_Sort, Brand_Name
FROM tablename
ORDER BY Brand_Sort
或者一个 UNION
例如
SELECT Brand_Name
FROM tablename
WHERE Brand_Name LIKE '%$rbrand%'
UNION
SELECT Brand_Name
FROM tablename
WHERE Brand_Name NOT LIKE '%$rbrand%'
关于php - 按相似度排序搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952002/