错误随笔记
mysql問題
1、先排序后分組的問題,order by , group by
參考文檔:https://blog.csdn.net/lglaljj123/article/details/79864188
一般寫法為: select tmp.* from (select * from table_name order by addtime desc)tmp group by tmp.id;
存在問題:5.7以上版本的MySql在執行這條sql時缺少了一個derived操作,通過查閱相關資料了解到MySql 5.7對子查詢進行了優化,認為子查詢中的order by可以進行忽略;
解決方案:1、以上sql在5.7版本以下可以使用
2、select tmp.* from (select * from table_name order by addtime desc limit 999999)tmp group by tmp.id;
? ?3、select * from table_name a where N > (select count(*) from table_name b where b.id= a.id and a.addtime< b.addtime) order by a.id,a.addtime desc;
方法二中使用limit,需要limit的范圍足夠大能包括所有數據,并且每種分類只會顯示一條數據,但是數據較多時運行效率要比方法三快上很多,方法三能夠控制每種分類顯示多少條數據,把N換成需要顯示對應的數字即可
?
轉載于:https://www.cnblogs.com/wutongred/p/10528098.html
總結
- 上一篇: Turtle库的学习积累
- 下一篇: StringBuilder与String