2014-10-16 2 views
-1

. Между тем вчера и этим июня мой хостинг-провайдер должен обновить свой MySQL, поскольку следующий запрос теперь дает другой результат, чем раньше.MySQL: заказ производной таблицы забыт

Я использую запрос как часть объединения, но у меня есть только копия/вставка ни одной рабочей части - если вы задаетесь вопросом, почему я использую производную таблицу.

Select * from (SELECT c.SeatNum FROM signups c where c.SeatNum <= 5 ORDER BY c.SeatNum asc) d1 

Ранее этот запрос дал бы мне результат:

1 
2 
3 
4 
5 

Теперь вместо дает мне:

2 
5 
1 
3 
4 

Если я вобще "SELECT c.SeatNum FROM signups c where c.SeatNum <= 5 ORDER BY c.SeatNum asc" я снова получаю:

1 
2 
3 
4 
5 

Почему использование производной таблицы внезапно смешивает мой заказ - и что я могу сделать, чтобы предотвратить его?

+5

«и что я могу сделать, чтобы предотвратить его», - поместите заказ на внешний выбор, очевидно. –

+0

порядок должен быть во внутреннем выборе, поскольку он является частью UNION, и я не хочу влиять на порядок остальной части UNION – user3526228

+0

Если порядок не указан (как в случае с внешним запросом), то нет заказ. Ваш предыдущий результат был (более или менее) случайным. Подумайте о добавлении фиктивного значения (например, SELECT 1 AS dummy, c.seat_num ... Etc) в подзапрос (или внешний запрос), чтобы вам было что-то заказать позже (случай, когда dummy = 1 then seat_num ...) – Strawberry

ответ

0

Проверьте свою таблицу сортировки. Тип сортировки повлияет на результаты сортировки. Обычно я использую сортировку utf8_general_ci.

+0

Это не помогло. То, что я не понимаю, так это то, что порядок по внутреннему выбору отлично работает, но затем внешний выбор помешает ему. – user3526228