Двойной ORDER BY mysql

237
26 августа 2018, 13:20

Есть база данных с товарами. По умолчанию товары выводятся по id ASC.

SELECT * FROM `products` ORDER BY id ASC

Есть еще поле sort_1. В нем указывается порядок сортировки, если он необходим. Например, товар занимает по id ASC 5 место, а в поле sort_1 у него указано 2 место. Он должен принужденно попасть на второе место. В товарах поле sort_1 может быть и пустое.

Как запрос сформулировать так, чтобы он выполнял то, что мне нужно?

Answer 1

Если у Вас "пустое" поле означает NULL, то как-то так:

SELECT * FROM `products` ORDER BY IFNULL(`sort_1`,`id`) ASC

Если же "пустое" - значит пустая строка, то что-то в этом роде:

SELECT * FROM `products` ORDER BY IF(`sort_1`<>'',`sort_1`,`id`) ASC
READ ALSO
Вывести дату меньше текущей на пол года

Вывести дату меньше текущей на пол года

Помогите написать запросНеобходимо вывести из таблицы с датами (dd

179
Исключить повторяющие строки

Исключить повторяющие строки

Мне нужно избавиться от повторяющихся строк в запросе, сам запрос:

169
КАК С ПОМОЩЬЮ SELECT - а найти первые 15 `String` и

КАК С ПОМОЩЬЮ SELECT - а найти первые 15 `String` и

Есть таблица, в которой есть раздел text, в нем написано допустим " Hello my name is

155