Насколько я знаю группы 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
для нескольких языков и предположим, что вы вернете FIRST записи в currentLang
и закажите их по имени И ТОГДА все другие языки.
Не спрашивайте меня, почему я не устанавливаю язык в JOIN. Это способ сделать.
Итак, все работает отлично, ожидайте, что сценарий у меня будет с языками en
и fr
. Если currentLang
- en
, то на основе
langData.lang='currentLang' THEN 1 ELSE 999 END
порядок en
равен 1 и fr
порядка 999, и вместо получения значения en
я получаю значение fr
.
Вот почему я хочу сгруппировать в первую строку.