通过相似性搜索结果

时间:2015-11-27 07:10:19

标签: php mysql

在同一页面上,我有两个搜索结果。第一个是从当前页面之前的页面自动生成的。我有一个字段叫做品牌名称我希望第二个搜索顺序基于第一次搜索的值或文本 例如,如果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)

2 个答案:

答案 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'的行,然后根据其他行继续订购其他所有行。