mysql group和order_mysql 用 group by 和 order by同时使用
首先,這是不可能實現的
mysql的查詢的順序
select -> from-> where->group by->having->order by.
但mysql的解析器執行順序:
from-> where->group by->having->select->order by.
所以,從執行的流程來看,是先group by 然后在 order by.
order by拿到的結果里已經是group by以后的結果.
因此,order by的字段必須是group by 里面已經存在的字段.
如果有人問到,想group by同時,進行排序
注意,查詢 按照索引進行排序
用 group_concat進行排序
SELECT
pq.id,SUBSTRING_INDEX( group_concat( pq.paperId ORDER BY pq.id),‘,‘,1
) AS paperId,SUBSTRING_INDEX(group_concat( pq.questionType ORDER BYpq.id),‘,‘,
1
) AS questionType,pq.questionId,p.id as pId,p.type,
SUBSTRING_INDEX( group_concat( p.type ORDER BY pq.id),‘,‘,1
) AS pType
FROM
paper_question as `pq` left join `question` as `p` on `pq`.`questionId` = `p`.`id`
WHERE
pq.paperId = 470 GROUP BY pq.paperId;
mysql 用 group by 和 order by同時使用
標簽:HERE???bst???order???join???substr???having???group by???index???substring
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:https://www.cnblogs.com/matengfei123/p/10158639.html
總結
以上是生活随笔為你收集整理的mysql group和order_mysql 用 group by 和 order by同时使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python3调用百度翻译API进行英文
- 下一篇: P 社《燃灯者联盟》现已发售,登陆 PC