据我所知,mysql GROUP BY组找到了最后一条记录。
GROUP BY第一条记录有什么解决方案吗?
我在SQL命令中设置了ORDER,我需要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
。
这就是我想要分组到第一行的原因。