在同一页面上,我有两个搜索结果。第一个是从当前页面之前的页面自动生成的。我有一个字段叫做品牌名称我希望第二个搜索顺序基于第一次搜索的值或文本 例如,如果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)
答案 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%'
答案 1 :(得分:0)
ORDER BY (Brand_Name='X') DESC,Brand_Name
这将首先放置具有Brand_Name ='X This First'的行,然后根据其他行继续订购其他所有行。