ВЫБЕРИТЕ DISTINCT и ORDER BY в MySQL

Кажется, что в версии 5.7 MySQL, они добавили одну неприятную вещь, которая была (или все еще остается) реальнойГоловная боль для тех, кто имеет дело с SQL Server.

Дело в том, что MySQL выдает ошибку, когда вы пытаетесьSELECT DISTINCT строки для одного набора столбцов и хотятORDER BY другой набор столбцов. Раньше в версии 5.6 и даже в некоторых сборках версии 5.7 вы могли это делать, но теперь это запрещено (по крайней мере, по умолчанию).

Я надеюсь, что существует некоторая конфигурация, некоторая переменная, которую мы могли бы установить, чтобы она работала. Но, к сожалению, я не знаю эту неприятную переменную. Я надеюсь, что кто-то знает это.

РЕДАКТИРОВАТЬ

В моем случае это типичный запрос, который работал буквально в течение многих лет (до последней сборки MySQL 5.7):

SELECT DISTINCT a.attr_one, a.attr_two, a.attr_three, b.attr_four FROM table_one a
LEFT JOIN table_two b ON b.some_idx = a.idx
ORDER BY b.id_order

И действительно, если я сейчас включуb.id_order кSELECT часть (как MySQL предлагает сделать), то, что я получу, будет мусором.

Ответы на вопрос(1)

Ваш ответ на вопрос