成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
    亚洲无人区一区| 欧美一区免费视频| 青青草精品视频| 亚洲国产一区在线观看| 亚洲日本丝袜连裤袜办公室| 综合久久给合久久狠狠狠97色| 国产日韩在线不卡| 国产精品久久久久久久久动漫| 中文字幕第一区| 最新不卡av在线| 亚洲大片精品永久免费| 蜜臀99久久精品久久久久久软件| 亚洲制服丝袜av| 日本不卡一二三区黄网| 精东粉嫩av免费一区二区三区| 国内外成人在线视频| 国产成人av电影| 欧美一区国产一区| 99视频国产精品免费观看| 久久精品电影| 欧美一区二区高清| 欧美国产视频在线| 伊人一区二区三区| 久久成人免费电影| 欧美一区91| 一区二区三区成人精品| 91国产免费观看| 精品嫩草影院久久| 国产精品不卡在线| 免费在线观看精品| av在线综合网| 久久久国产精品一区二区三区| 欧美日韩极品在线观看一区| 精品乱人伦小说| 亚洲黄色av一区| 裸体一区二区三区| 午夜精品网站| 色呦呦国产精品| 精品国产成人系列| 性久久久久久久久久久久 | 欧美一进一出视频| 欧美一级搡bbbb搡bbbb| 一区在线观看视频| 久久激情五月激情| 韩日成人av| 欧美日韩国产首页| ●精品国产综合乱码久久久久| 美国一区二区三区在线播放| 欧美日韩免费精品| 在线亚洲免费视频| 国产日本欧美一区二区| 免费人成黄页网站在线一区二区| 99久久国产综合精品麻豆| 久久精品一区二区国产| 久久久国产午夜精品| 奇米影视一区二区三区小说| 91影视在线播放| 欧美在线观看视频一区二区| 日本一区二区在线不卡| 韩国av一区二区三区四区| 国产欧美日韩综合精品二区| 久久伊人中文字幕| 另类的小说在线视频另类成人小视频在线 | 欧美亚洲愉拍一区二区| 久久久三级国产网站| 日韩中文字幕麻豆| 精品91久久久久| 日韩欧美国产麻豆| 精品一区二区在线看| 亚洲毛片视频| 欧美国产一区二区在线观看| 国产成人综合在线| 在线看国产一区二区| 亚洲欧美成aⅴ人在线观看| 成人美女视频在线观看| 欧洲在线/亚洲| 亚洲小说欧美激情另类| 国语精品中文字幕| 久久嫩草精品久久久久| 国产精品99久久久| 一区二区三区欧美日韩| 91色porny| 精品国产三级电影在线观看| 国产乱码精品1区2区3区| 91国产福利在线| 日韩1区2区日韩1区2区| 性刺激综合网| 亚洲一区二区高清| 夜夜嗨网站十八久久| 国产精品九色蝌蚪自拍| 国产精品二区影院| 国产精品乱人伦一区二区| 波多野结衣91| 久久久精品人体av艺术| 成人av电影免费观看| 精品剧情在线观看| 不卡的看片网站| 久久综合色一综合色88| 91一区二区在线| 国产偷国产偷亚洲高清人白洁| 97国产精品videossex| 久久精品视频免费观看| 国产一区日韩欧美| 国产精品成人免费| 国产一区二区三区的电影| 一区二区视频在线| 亚洲一区三区电影在线观看| 亚洲成在人线免费| 久久精品综合| 久久国产综合精品| 欧美一区二区三区成人| 成人国产精品免费网站| 国产欧美精品一区二区色综合| 91老师片黄在线观看| 亚洲女人的天堂| 亚洲综合首页| 久久99国产乱子伦精品免费| 欧美日本在线观看| 不卡电影一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 99国产精品久久久久久久成人热 | 成人av电影免费观看| 欧美高清在线一区二区| 国产精品美女xx| 久久97超碰色| 欧美精品一区二区三区很污很色的 | 亚洲福利av| 男男成人高潮片免费网站| 51精品国自产在线| 欧美精品观看| 亚洲国产成人av| 337p亚洲精品色噜噜噜| 欧美日韩日本国产亚洲在线| 亚洲成人av中文| 欧美一区二区高清| 亚洲经典在线| 国产精品2024| 亚洲视频 欧洲视频| 欧美日韩国产首页在线观看| 午夜视频精品| 欧美aaaaa成人免费观看视频| 精品国产乱码久久久久久久久| 亚洲国产日韩在线| 国产伦精品一区二区三区视频青涩| 精品国产免费视频| 午夜在线a亚洲v天堂网2018| 国产99一区视频免费| 亚洲欧美日韩国产综合在线| 91麻豆精品国产无毒不卡在线观看| 国产精品theporn| 黄色日韩三级电影| 一区二区中文字幕在线| 欧美日本一区二区| 亚洲日产国产精品| 国产成人精品免费视频网站| 亚洲日本免费电影| 日韩免费在线观看| 色诱亚洲精品久久久久久| 国产日本欧洲亚洲| 一本一道久久a久久精品| 国产成人无遮挡在线视频| 国产精品久久久久四虎| 337p亚洲精品色噜噜狠狠| 国产亚洲精品自拍| 波多野结衣中文一区| 日本不卡一区二区| 亚洲欧美成人一区二区三区| 欧美精品一区二区久久婷婷| 久久伊人亚洲| 国色天香一区二区| 99精品黄色片免费大全| 久久97超碰色| 日韩经典中文字幕一区| 综合久久给合久久狠狠狠97色 | 亚洲免费观看在线观看| 精品不卡在线视频| 欧美美女bb生活片| 一本到三区不卡视频| 国产精品乱码| 亚洲人妖在线| 国产精品国产亚洲精品看不卡15| 成人综合在线网站| 欧美在线视频不卡| 久久久久久夜| 国产精品永久入口久久久| 精品99视频| 欧美一区二区在线| 99久精品国产| 成人黄色一级视频| 成人精品小蝌蚪| 国产91精品免费| 国产精品77777| 国产一区二区三区久久久| 久久se这里有精品| 美美哒免费高清在线观看视频一区二区 | 欧美中文字幕亚洲一区二区va在线 | 久久精精品视频| 久久精品亚洲| 色婷婷综合久久久久中文一区二区| 午夜一区在线|