dzheka3d
@dzheka3d

Как добавить id в запрос SELECT?

Всем привет! Есть запрос что-то типа:
( 
                    SELECT e.`id`, e.`name`
                    FROM `news` e 
                    WHERE e.`date` < NOW()
                    ORDER BY e.`date` ASC
                )
    		UNION 
    		(
                    SELECT e.`id`, e.`name`
                    FROM `news` e 
                    WHERE e.`date` > NOW()
                    ORDER BY e.`date` DESC
                )
LIMIT 0, 20


Суть в том, что сортировка для каждого SELECT разная
А проблема в том, что после объединения сортировка сбивается и весь запрос сортирует выбранные записи по ID.

Возможно стоит добавить какой-то общий уникальный ID, по которому потом отсортировать всю выборку?
Но как это сделать?
  • Вопрос задан
  • 381 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
(SELECT ...)
UNION (SELECT ...)
LIMIT 20

И не надо усложнять запрос без реальной необходимости.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
SELECT e.`id`, e.`name`
FROM `news` e 
ORDER BY DATEDIFF(NOW(), e.`date`) ASC
LIMIT 20

Собственно, формулу можно и усложнить, если вы понимаете, что на самом деле хотите получить от двух сортировок в разные стороны.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы