成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Mysql分組排序取每組第一條的2種實現方式

瀏覽:569日期:2023-02-18 16:43:30
目錄
  • 前言
  • 前期準備
  • 第一種
    • 原因分析:
    • 解決:
  • 第二種
    • GROUP_CONCAT函數解釋:
  • 總結

    前言

    記錄一下最近的一個需求,查不同產品排名第一的圖片作為主圖

    其實一開始想用的是mybatis的級聯查詢,結果說需要一次性全部查出來

    那就沒事了,改sql咯:

    親測實用

    前期準備

    MySQL:8.0

    Java:1.8

    建表語句:

    CREATE TABLE `product_image` (  `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT "主鍵id",  `product_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT "產品id",  `sort_id` int NOT NULL COMMENT "圖片序號",  `img_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT "圖片路徑",) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT="產品圖片表";

    第一種

    這一種也是網上推薦最多的,但個人覺得局限性太大,不介意用在實戰上

    sql:

    select * from (select * from product_image order by sort_id limit 10000) a group by a.product_id

    問題重點:

    • 相信個別同學復制過去執行就報了this is incompatible with sql_mode=only_full_group_by錯誤
    • 之所有不推薦在實戰中這樣寫,是因為其中子查詢limit 10000已經固定寫死了

    原因分析:

    一、這個錯誤發生在mysql 5.7.5 版本及以上版本會出現的問題:
    mysql 5.7.5版本以上默認的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,這個配置嚴格執行了"SQL92標準"。
    很多從5.6升級到5.7時,為了語法兼容,大部分都會選擇調整sql_mode,使其保持跟5.6一致,為了盡量兼容程序。

    二、在sql執行時,出現該原因,簡單來說就是:
    由于開啟了ONLY_FULL_GROUP_BY的設置,如果select 的字段不在 group by 中,
    并且select 的字段未使用聚合函數(SUM,AVG,MAX,MIN等)的話,那么這條sql查詢是被mysql認為非法的,會報錯誤…

    所以mysql在5.7.5版本及以上版本就會報這個錯誤

    解決:

    select ANY_VALUE(id),  product_id, ANY_VALUE(sort_id) from (select * from product_image order by sort_id  limit 100000) a group by a.product_id

    只需要把需要查詢的字段用ANY_VALUE(字段)函數包住就能正常運行

    有沒有同學想過為什么需要limit:

    看著極其多余,而且寫死數量所以導致實戰不實用

    那是因為

    從mysql5.7開始,子查詢的排序已經變為無效了。所以要加個limit,這樣子查詢就不光是排序,所以此時排序會生效,但有條數限制10000

    第二種

    是使用GROUP_CONCAT函數解決的

    sql:

    select group_concat(distinct product_id ORDER BY sort_id), min(id) ,min(img_url)from product_image group by product_id

    GROUP_CONCAT函數解釋:

    GROUP_CONCAT函數用于將GROUP BY產生的同一個分組中的值連接起來,返回一個字符串結果

    GROUP_CONCAT函數首先根據GROUP BY指定的列進行分組,將同一組的列顯示出來,并且用分隔符分隔,由函數參數(字段名)決定要返回的列

    語法結構:

    GROUP_CONCAT([DISTINCT] 要連接的字段 [ORDER BY 排序字段 ASC/DESC] [SEPARATOR "分隔符"])

    說明:

    (1) 使用DISTINCT可以排除重復值

    (2) 如果需要對結果中的值進行排序,可以使用ORDER BY子句

    (3) SEPARATOR '分隔符’是一個字符串值,默認為逗號

    (1) 使用DISTINCT可以排除重復值

    (2) 如果需要對結果中的值進行排序,可以使用ORDER BY子句

    (3) SEPARATOR '分隔符’是一個字符串值,默認為逗號

    其實我還是更傾向于級聯查,不用再重新組裝數據,代碼也更簡潔

    總結

    到此這篇關于Mysql分組排序取每組第一條的2種實現方式的文章就介紹到這了,更多相關Mysql分組排序取每組第一條內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: MySQL
    成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
    一区二区三区在线免费视频| 日韩电影在线观看电影| 亚洲国产视频网站| 亚洲国产精品www| 久久日韩粉嫩一区二区三区 | 亚洲不卡一区二区三区| 亚洲一二三区精品| 欧美国产乱子伦 | 亚洲图片欧美视频| 亚洲激情女人| 成人欧美一区二区三区黑人麻豆| 欧美福利一区| 久久久一区二区三区捆绑**| eeuss影院一区二区三区| 欧美大片在线观看一区| 国产69精品久久777的优势| 欧美精品久久一区| 激情婷婷亚洲| 亚洲欧洲日产国码二区| 好吊色欧美一区二区三区四区| 国产精品色呦呦| 亚洲一级黄色| 日韩一区在线看| 日韩一区二区久久| 亚洲福利视频三区| 久久另类ts人妖一区二区| 亚洲va国产va欧美va观看| 亚洲欧美日产图| 天堂一区二区在线免费观看| 久久综合给合久久狠狠色| 蜜臀91精品一区二区三区| 欧美三区在线观看| 国产精品中文字幕欧美| 7777精品伊人久久久大香线蕉完整版| 精品亚洲国产成人av制服丝袜 | 国产精品制服诱惑| 亚洲成人黄色小说| 久久精品成人| 人妖欧美一区二区| 欧美日韩一区二区三区在线看| 国产在线精品国自产拍免费| 精品精品欲导航| 91啪在线观看| 中文字幕在线一区免费| 国产亚洲精品久久久久婷婷瑜伽| 一区二区三区高清在线| 色天使久久综合网天天| 激情文学综合网| 欧美不卡一区二区三区| 欧美色123| 亚洲一区在线电影| 91国产免费观看| 国产成人免费av在线| 久久久亚洲高清| 亚洲高清二区| 天使萌一区二区三区免费观看| 91久久精品国产91性色tv| 国产精品资源网站| 久久精品视频一区| 国产区日韩欧美| 免费久久99精品国产| 日韩三级伦理片妻子的秘密按摩| 97久久超碰国产精品| 自拍偷自拍亚洲精品播放| 久久精品123| 国产成人精品三级麻豆| 中文字幕不卡在线播放| 亚洲在线不卡| 国产一区二区三区精品欧美日韩一区二区三区| 日韩精品一区二区三区中文不卡 | 欧美性猛交xxxxxx富婆| 成人午夜在线播放| 亚洲色图.com| 一本久道久久综合中文字幕| 久久 天天综合| 国产日本欧美一区二区| 久久国产主播精品| av中文字幕亚洲| 亚洲国产视频在线| 91精品国产福利| 欧美日韩在线高清| 丝袜脚交一区二区| 欧美成va人片在线观看| av成人黄色| 国产一区二区网址| 中文在线一区二区| 在线看不卡av| 91免费版在线| 午夜久久久久久| 欧美xxx久久| 宅男噜噜噜66一区二区| 国产一区二区免费看| 国产精品天干天干在观线| 久久久久一区二区| 波多野洁衣一区| 亚洲午夜日本在线观看| 日韩丝袜美女视频| 国产亚洲毛片在线| 成人自拍视频在线观看| 亚洲精品国产视频| 欧美一区二区三区免费观看视频| 激情婷婷久久| 国产麻豆精品95视频| 有码一区二区三区| 欧美老人xxxx18| 精品999成人| 狠狠狠色丁香婷婷综合激情| 亚洲视频网在线直播| 欧美一区二区三区日韩视频| 国产精品制服诱惑| 99国产精品久久久久久久久久| 日韩精品三区四区| 中文字幕av不卡| 91精品国产91久久久久久一区二区| 99在线精品视频在线观看| 懂色av一区二区夜夜嗨| 视频一区二区中文字幕| 国产视频视频一区| 欧美日韩一区三区四区| 伊人天天综合| 成人在线综合网| 日韩中文字幕av电影| 中文字幕国产一区| 欧美一级一区二区| 色一情一伦一子一伦一区| 国产一区视频观看| 成人免费电影视频| 奇米影视7777精品一区二区| 一色屋精品亚洲香蕉网站| 日韩一区二区三区视频| 久久成人精品| 狠狠88综合久久久久综合网| 国产精品伊人色| 三级成人在线视频| 国产精品视频线看| 日韩视频在线永久播放| 91福利视频久久久久| 亚洲日本欧美| 色综合天天性综合| 国产福利精品一区| 蜜桃久久久久久久| 亚洲一区二区偷拍精品| 国产精品三级视频| 久久亚洲一区二区三区明星换脸 | 国产精品国产精品国产专区不片 | 国产欧美日韩综合一区在线播放 | 亚洲精品国产日韩| 欧美高清视频一区| 成人丝袜18视频在线观看| 精品制服美女丁香| 石原莉奈在线亚洲三区| 亚洲麻豆国产自偷在线| 国产免费成人在线视频| 欧美一级搡bbbb搡bbbb| 欧美日韩一区三区四区| 久久综合福利| 噜噜噜噜噜久久久久久91| 亚洲精品日本| 黄色一区三区| 午夜亚洲福利| 99久久综合精品| 丁香婷婷综合激情五月色| 国产综合色精品一区二区三区| 日韩精品电影在线观看| 亚洲成年人影院| 一区二区三区不卡在线观看| 国产精品久久久久久久久果冻传媒| 国产丝袜欧美中文另类| 久久色视频免费观看| 精品播放一区二区| 精品国内二区三区| 精品国产区一区| 日韩精品资源二区在线| 这里只有精品电影| 欧美高清你懂得| 欧美日本在线播放| 欧美日韩欧美一区二区| 欧美三级视频在线播放| 欧美写真视频网站| 在线日韩国产精品| 91黄色在线观看| 欧美吻胸吃奶大尺度电影| 欧美写真视频网站| 欧美日韩综合在线| 欧美日本免费一区二区三区| 欧美精选在线播放| 日韩午夜电影av| 2024国产精品视频| 久久午夜免费电影| 精品国产乱码久久| 精品国产自在久精品国产| 精品国产成人系列| 久久久噜噜噜久久人人看| 久久久国际精品| 国产精品美日韩| 亚洲免费观看高清完整版在线观看熊| 亚洲欧美国产高清| 亚洲大片精品永久免费| 日韩高清欧美激情| 精品无人区卡一卡二卡三乱码免费卡|