Как написать запрос с сортировкой и группировкой?

Статус
В этой теме нельзя размещать новые ответы.

Gtvar

Создатель
Регистрация
25 Мар 2010
Сообщения
15
Реакции
0
Помогите сделать запрос для MySQL.
Код:
"SELECT * FROM TableProds
WHERE category_id IN(5,1,3) 
ORDER BY price";
Нужно чтобы Выдавало список продуктов сгрупированых по category_id IN(5,1,3) именно в таком порядке.
тоесть, сначала идут продукты категории 5, отсортированные по цене, затем 1 тоже по цене отсортированные и т.д.
Пробовал так, не то, оно сортирует категорию как 1 3 5
SELECT * FROM products WHERE category_id IN(5,1,3) AND enabled = 1 ORDER BY category_id ASC, price ASC
С группировкой таже история.
 
Код:
SELECT * 
FROM TableProds
WHERE category_id IN(4,1,3) 
ORDER BY category_id=4 DESC, category_id=1 DESC, category_id=3 DESC, dengi ASC
 
Не прокатил это вариант, пришлось создавать таблицу приоритетов, и делать так:
Код:
SELECT * FROM
 products,categories 
WHERE category_id IN(150,273,214) AND products.enabled = 1 
AND categories.id = products.category_id 
ORDER BY categories.sort ASC, price
 
Не прокатил это вариант, пришлось создавать таблицу приоритетов, и делать так:
Код:
SELECT * FROM
 products,categories 
WHERE category_id IN(150,273,214) AND products.enabled = 1 
AND categories.id = products.category_id 
ORDER BY categories.sort ASC, price
и это правильно.
хотя в простейшем случае можно было бы выкрутиться IF-ами, например делаем категорию 5 самой приоритетной.
Код:
SELECT *, IF(category_id=5,0,category_id)as mysort
FROM products WHERE category_id IN(5,1,3) AND enabled = 1
ORDER BY mysort ASC, price ASC
 
Группировку через group by обычно делают.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху