日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Mysql分組排序取每組第一條的2種實(shí)現(xiàn)方式

瀏覽:626日期:2023-02-18 16:43:30
目錄
  • 前言
  • 前期準(zhǔn)備
  • 第一種
    • 原因分析:
    • 解決:
  • 第二種
    • GROUP_CONCAT函數(shù)解釋:
  • 總結(jié)

    前言

    記錄一下最近的一個(gè)需求,查不同產(chǎn)品排名第一的圖片作為主圖

    其實(shí)一開(kāi)始想用的是mybatis的級(jí)聯(lián)查詢(xún),結(jié)果說(shuō)需要一次性全部查出來(lái)

    那就沒(méi)事了,改sql咯:

    親測(cè)實(shí)用

    前期準(zhǔn)備

    MySQL:8.0

    Java:1.8

    建表語(yǔ)句:

    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 "產(chǎn)品id",  `sort_id` int NOT NULL COMMENT "圖片序號(hào)",  `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="產(chǎn)品圖片表";

    第一種

    這一種也是網(wǎng)上推薦最多的,但個(gè)人覺(jué)得局限性太大,不介意用在實(shí)戰(zhàn)上

    sql:

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

    問(wèn)題重點(diǎn):

    • 相信個(gè)別同學(xué)復(fù)制過(guò)去執(zhí)行就報(bào)了this is incompatible with sql_mode=only_full_group_by錯(cuò)誤
    • 之所有不推薦在實(shí)戰(zhàn)中這樣寫(xiě),是因?yàn)槠渲凶硬樵?xún)limit 10000已經(jīng)固定寫(xiě)死了

    原因分析:

    一、這個(gè)錯(cuò)誤發(fā)生在mysql 5.7.5 版本及以上版本會(huì)出現(xiàn)的問(wèn)題:
    mysql 5.7.5版本以上默認(rèn)的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,這個(gè)配置嚴(yán)格執(zhí)行了"SQL92標(biāo)準(zhǔn)"。
    很多從5.6升級(jí)到5.7時(shí),為了語(yǔ)法兼容,大部分都會(huì)選擇調(diào)整sql_mode,使其保持跟5.6一致,為了盡量兼容程序。

    二、在sql執(zhí)行時(shí),出現(xiàn)該原因,簡(jiǎn)單來(lái)說(shuō)就是:
    由于開(kāi)啟了ONLY_FULL_GROUP_BY的設(shè)置,如果select 的字段不在 group by 中,
    并且select 的字段未使用聚合函數(shù)(SUM,AVG,MAX,MIN等)的話(huà),那么這條sql查詢(xún)是被mysql認(rèn)為非法的,會(huì)報(bào)錯(cuò)誤…

    所以mysql在5.7.5版本及以上版本就會(huì)報(bào)這個(gè)錯(cuò)誤

    解決:

    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

    只需要把需要查詢(xún)的字段用ANY_VALUE(字段)函數(shù)包住就能正常運(yùn)行

    有沒(méi)有同學(xué)想過(guò)為什么需要limit:

    看著極其多余,而且寫(xiě)死數(shù)量所以導(dǎo)致實(shí)戰(zhàn)不實(shí)用

    那是因?yàn)?/strong>:

    從mysql5.7開(kāi)始,子查詢(xún)的排序已經(jīng)變?yōu)闊o(wú)效了。所以要加個(gè)limit,這樣子查詢(xún)就不光是排序,所以此時(shí)排序會(huì)生效,但有條數(shù)限制10000

    第二種

    是使用GROUP_CONCAT函數(shù)解決的

    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函數(shù)解釋:

    GROUP_CONCAT函數(shù)用于將GROUP BY產(chǎn)生的同一個(gè)分組中的值連接起來(lái),返回一個(gè)字符串結(jié)果

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

    語(yǔ)法結(jié)構(gòu):

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

    說(shuō)明:

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

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

    (3) SEPARATOR '分隔符’是一個(gè)字符串值,默認(rèn)為逗號(hào)

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

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

    (3) SEPARATOR '分隔符’是一個(gè)字符串值,默認(rèn)為逗號(hào)

    其實(shí)我還是更傾向于級(jí)聯(lián)查,不用再重新組裝數(shù)據(jù),代碼也更簡(jiǎn)潔

    總結(jié)

    到此這篇關(guān)于Mysql分組排序取每組第一條的2種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)Mysql分組排序取每組第一條內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

    標(biāo)簽: MySQL
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    精品国产鲁一鲁****| 亚洲欧美日韩国产一区二区| 国产高清亚洲| 久久中文字幕二区| 日韩精品一区二区三区中文| 久久精品国产99国产精品| 亚洲欧美日韩高清在线| 嫩草伊人久久精品少妇av杨幂 | 国产91在线播放精品| 97精品中文字幕| 午夜久久美女| 国产成年精品| 日韩av二区在线播放| 欧美成人a交片免费看| 欧美一级久久| 一区二区三区四区精品视频| 亚洲一级特黄| 日韩av片子| 91精品国产自产在线丝袜啪| 99久久www免费| 国产高清亚洲| 国产探花在线精品一区二区| 中文字幕免费一区二区| 狠狠干综合网| 91成人网在线观看| 日韩欧美一区二区三区在线观看| 久久精品系列| 国产精品成人一区二区网站软件| 亚洲精品伊人| 日韩成人午夜精品| 久久精品97| 国产精品九九| 国产亚洲久久| 国产探花一区在线观看| 欧美日本久久| 日本强好片久久久久久aaa| 亚洲18在线| 日本欧美一区| 欧美激情福利| 国产精品日本一区二区不卡视频| 中文字幕一区二区三区在线视频| 一本一道久久a久久| 亚洲综合精品| 亚洲经典在线| 午夜日韩福利| 欧美69视频| 亚洲另类av| 亚洲va久久| 日本va欧美va欧美va精品| 国产激情欧美| 亚洲免费影院| 日本不卡一二三区黄网| 亚洲婷婷免费| 在线观看免费一区二区| 免费久久久久久久久| 久久久久久久久丰满| 国产极品嫩模在线观看91精品| 日韩欧美2区| 日韩av资源网| **爰片久久毛片| 国产精品99久久久久久董美香| 久久精品99国产精品日本| 亚州欧美在线| 国产精品亚洲二区| 国产成人精品三级高清久久91| 欧美日韩网址| 麻豆精品在线| 高清av一区| 亚洲天堂一区二区| 亚洲成人一区| 亚洲精品麻豆| 国产精品一卡| 国产精品av一区二区| 石原莉奈在线亚洲三区| 亚洲精品在线二区| 国产精品chinese| 日韩av自拍| 亚洲欧美成人综合| 国产精品国产三级在线观看| 久久精品亚洲欧美日韩精品中文字幕| 荡女精品导航| 午夜久久久久| 久久久国产精品网站| 99视频精品| 国产日韩高清一区二区三区在线| 日韩免费一区| 亚洲欧美一级| 久久青草久久| 久久国产生活片100| 伊人久久大香线蕉av不卡| 国产乱码精品一区二区亚洲| 国产 日韩 欧美一区| 青草久久视频| 国产精品色婷婷在线观看| 国产精品97| 免播放器亚洲| 美日韩一区二区三区| 在线观看一区| 日本少妇一区| 日韩高清国产一区在线| 欧美肉体xxxx裸体137大胆| 国产毛片精品| 亚洲视频播放| 丝袜美腿诱惑一区二区三区| 青青国产精品| 好吊日精品视频| 国产成年精品| 久久国产精品免费精品3p| 久久最新视频| 久久精品亚洲欧美日韩精品中文字幕| 视频精品一区二区| 日韩国产专区| 久久国产视频网| 视频一区二区中文字幕| 黄色精品网站| 久久婷婷激情| 鲁鲁在线中文| 久久精品国产亚洲一区二区三区| 91精品成人| 欧美成人亚洲| 日韩三区免费| 天堂а√在线最新版中文在线| 国产三级一区| 日韩av中文字幕一区二区三区| 水蜜桃久久夜色精品一区的特点| 国产精品15p| 日本欧美韩国一区三区| 亚洲免费毛片| 快she精品国产999| 蜜臀精品一区二区三区在线观看| 国产精品7m凸凹视频分类| 久久久久亚洲| 国产理论在线| 日本韩国欧美超级黄在线观看| 日本一区二区高清不卡| 久久精品网址| 四虎884aa成人精品最新| 久久一级电影| 中文视频一区| 日韩av影院| 国产精品xvideos88| 免费在线日韩av| 欧洲精品一区二区三区| 亚洲少妇诱惑| 国产调教精品| 成人一区而且| 国产一区白浆| 欧美日韩黄网站| 成人三级高清视频在线看| 99xxxx成人网| 日本午夜精品久久久| 国产黄大片在线观看| 婷婷六月综合| 欧美极品一区二区三区| 亚洲精品一区三区三区在线观看| 五月激情久久| 久久精品在线| 亚洲毛片一区| 精品国产精品久久一区免费式 | 国产毛片精品| 狠狠干综合网| 日本久久综合| 91精品国产自产精品男人的天堂 | 亚州精品视频| 亚洲女同av| 亚洲精品动态| 亚洲福利一区| 青草综合视频| 国产精品普通话对白| 国产乱码午夜在线视频| 国产日本精品| 国产一级成人av| 亚洲三级国产| 国产亚洲一区| 欧美一区二区三区久久精品| 日韩手机在线| 国产精品hd| 日韩不卡免费高清视频| 激情综合网站| 久久亚洲色图| 国产精品一区二区免费福利视频 | 国产精品乱战久久久| 国产精品一国产精品k频道56| 丰满少妇一区| 一级欧美视频| 91国内精品| 亚洲成人一区| 国产精品第一| 精品视频高潮| 亚洲神马久久| 国产va在线视频| 日本午夜精品| 亚洲国产成人精品女人| 鲁大师精品99久久久| 成人va天堂| 日韩精品一区二区三区中文在线 | 日韩精品一区二区三区中文 | 日日夜夜免费精品视频| 电影亚洲精品噜噜在线观看| 亚洲精品视频一二三区|