Php 按相似度排序搜索结果

Php 按相似度排序搜索结果,php,mysql,Php,Mysql,在同一页上,我有两个搜索结果。从当前页面之前的页面自动生成的第一个页面。我有一个名为Brand Name的字段,我希望第二次搜索顺序基于第一次搜索时的值或文本 例如,如果Brand=X,则在第二次搜索中,所有X个品牌都将位于顶部 $rbrand = $row [Brand_name] // Brand name from first search result 我试着用这个来订购第二个搜索结果 SELECT * FROM tablename ORDER BY IF(Bra

在同一页上,我有两个搜索结果。从当前页面之前的页面自动生成的第一个页面。我有一个名为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)

这将把品牌为“X This First”的行放在第一位,然后将继续根据其他内容订购其他所有内容。

实现这一点有多种方法

您可以使用
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
或者一个
联合体

SELECT Brand_Name 
FROM tablename
WHERE Brand_Name LIKE '%$rbrand%'
UNION
SELECT Brand_Name 
FROM tablename
WHERE Brand_Name NOT LIKE '%$rbrand%'

第二个搜索结果的变量是什么?@Samir对于第二个搜索结果,我使用了字段名
Brand\u Name
,但您的要求仍然不清楚。
SELECT Brand_Name 
FROM tablename
WHERE Brand_Name LIKE '%$rbrand%'
UNION
SELECT Brand_Name 
FROM tablename
WHERE Brand_Name NOT LIKE '%$rbrand%'