日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 常用需求写法 记录一下

發布時間:2023/12/10 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 常用需求写法 记录一下 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1、MySQL 分組查詢文章表各個分類的前N條數據

時間復雜度均為分組中條目數的二次方。而且,很多優化器都不能優化這種查詢,使得它的耗時最好為全表行數的二次方(尤其在沒有設置正確的索引時),而且數據量大時,可能將服務器會停止響應。SELECT A1.* FROM cd_app2_article AS A1 INNER JOIN (SELECT A.cate_id,A.create_time FROM cd_app2_article AS A LEFT JOIN cd_app2_article AS B ON A.create_time = B.create_time AND A.id <= B.id GROUP BY A.cate_id,A.create_time HAVING COUNT(B.id) <= 10 ) AS B1 ON A1.cate_id = B1.cate_id AND A1.create_time = B1.create_time ORDER BY A1.cate_id,A1.create_time DESC//那么還有更好的方法嗎?有沒有辦法可以僅僅掃描一次數據,而不是通過子查詢進行多次掃描 //有,使用 UNION(SELECT * FROM cd_app2_article WHERE cate_id=1 ORDER BY id DESC LIMIT 10) UNION ALL (SELECT * FROM cd_app2_article WHERE cate_id=4 ORDER BY id DESC LIMIT 10) UNION ALL (SELECT * FROM cd_app2_article WHERE cate_id=7 ORDER BY id DESC LIMIT 10)//使用UNION的方式是一個很好的選擇。而當你要獲取數據表中大部分條目時也有一種能達到線性時間的方法,那//就是使用用戶定義變量。太專業了,沒去深究,給出別人的一個學習示例set @num := 0, @type := ''; selecttype, variety, price from( selecttype, variety, price, @num := if(@type =type, @num + 1, 1)as row_number, @type :=type as dummy fromfruits orderby type, price )as x where x.row_number <= 2;

2、查詢文章表中各個分類的總數

SELECT cate_id,COUNT(*) FROM cd_app2_article GROUP BY cate_id

?

總結

以上是生活随笔為你收集整理的MySQL 常用需求写法 记录一下的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。