2015-11-27 2 views
2

На этой же странице у меня есть два результата поиска. Первый из них автоматически создается на странице до текущей страницы. У меня есть поле под названием Brand Name Я хочу второй поиск для того, чтобы быть на основе значения или тексте на первом поиск .Для Например, если марка = X всех X бренды, чтобы быть на вершине второго поисказаказать Результат поиска по подобию

$rbrand = $row [Brand_name] // Brand name from first search result 

Я попытался это сделать заказ второй результат Поиска

SELECT * 
    FROM tablename 
ORDER 
    BY IF(Brand_Name LIKE '%$rbrand%',0,1) 
+1

Что такое переменная второго результата поиска? – Samir

+0

@Samir Для второго я использую поле Имя 'Brand_Name' – user5225773

+0

Вы все еще не уверены. – Samir

ответ

0
ORDER BY (Brand_Name='X') DESC,Brand_Name 

Это поместит те строки, которые имеют BRAND_NAME = «X Это первое», а затем приступят к заказу всего остального, основываясь на других.

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%' 
Смежные вопросы