Насколько я знаю, группы mysql GROUP BY для последней найденной записи.
Есть ли решение для GROUP BY первой записи?
Я настроил ORDER в команде SQL иМне нужно, чтобы GROUP BY вернул первую запись, а не последнюю.
РЕДАКТИРОВАТЬ
Вот запрос
SELECT
DISTINCT(master.masterID),
langData.*,
master.*
FROM master_table as master
INNER JOIN lang_table as langData ON
langData.masterID=master.masterID
GROUP BY master.masterID
ORDER BY
CASE
WHEN langData.lang='currentLang' THEN 1 ELSE 999 END ,
master.name desc LIMIT 0,10
В приведенном выше запросе выберитеmasterID
для мультиязычной таблицы и предположим, что нужно вернуть ПЕРВЫЕ записи в currentLang
и упорядочить их по имени И ТОГДА на всех других языках.
Не спрашивайте меня, почему я не установил язык в JOIN,Это способ сделать.
Так что все работает нормально, пока ожидаю сценарий, что у меня есть запись с языками en
и fr
.Если currentLang
равно en
, то на основе
langData.lang='currentLang' THEN 1 ELSE 999 END
порядок en
равен 1, а порядок fr
равен 999, и вместо получения значения en
я получаю значение fr
.
Вот почему я хочу сгруппировать в первый ряд.