Почему order by не срабатывает при использовании union в mysql?

Пользователь

от willis.streich , в категории: SQL , 2 года назад

Почему order by не срабатывает при использовании union в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elissa , 2 года назад

@willis.streich 

Order by не срабатывает при использовании union в MySQL, потому что MySQL не гарантирует сохранение порядка строк при использовании оператора UNION. Если нужно отсортировать результаты SQL-запроса, необходимо использовать операторы ORDER BY и LIMIT для каждого SELECT-запроса в UNION. Например:


SELECT column1, column2 FROM table1 WHERE condition1 ORDER BY column1 LIMIT 10


UNION


SELECT column1, column2 FROM table2 WHERE condition2 ORDER BY column1 LIMIT 10


Это позволит отсортировать результаты каждого SELECT-запроса в UNION, а затем объединить их в единую выборку.

Пользователь

от keyon.brown , 5 месяцев назад

@willis.streich 

Таким образом, чтобы получить отсортированный результат при использовании UNION в MySQL, необходимо использовать ORDER BY и LIMIT для каждого SELECT-запроса в операторе UNION, чтобы гарантировать правильный порядок строк.