国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

mysql中如何按分組添加序號(hào)

瀏覽:57日期:2023-09-05 20:32:01
目錄mysql按分組添加序號(hào)不按分組添加序號(hào)按分組添加序號(hào)mysql分組給字段設(shè)置序號(hào)進(jìn)行排序分組update設(shè)置序號(hào)取分組后的前n名總結(jié)mysql按分組添加序號(hào)不按分組添加序號(hào)

1.第一種

select (@i := @i + 1) as rownum,b.* from table b, (SELECT @i := 0) as a order by region_id desc

2.第二種

set @i=0;select @i:=@i+1 as rownum, b.* from table b order by region_id desc

上面兩種方法原理就是,事先定義一個(gè)變量,通過變量的遞加以及虛擬表的聯(lián)查達(dá)到生成序號(hào)列的目的

按分組添加序號(hào)

select -- rownum 判斷 @now_region_id是否和當(dāng)前的region_id一樣,true:讓 @i+=1 false:重置@i (@i := case when @now_region_id=region_id then @i + 1 else 1 end ) rownum, -- 設(shè)置 @now_region_id等于region_id(@now_region_id:=region_id), b.*,fromtable b, (SELECT @i := 0, @now_region_id:='') as a order by region_id descmysql分組給字段設(shè)置序號(hào)進(jìn)行排序

之前有一個(gè)給商戶的員工進(jìn)行排序的需求,結(jié)果我沒有按照商戶進(jìn)行設(shè)置排序sort值,后面所有的商戶的員工的sort值都混在一起了,只能寫數(shù)據(jù)庫腳本來進(jìn)行糾正

最新版本v2.0

分組update設(shè)置序號(hào)

最新的sql如下:

UPDATE tb_desc SET sort = 0;-- @C這里想從幾開始 就從幾開始. @A表示上一行的名稱.SET @C = 0;SET @A = '';UPDATE tb_desc dSET d.`sort` = (SELECT CASE WHEN @A = d.`name`THEN @D := @D + 1ELSE-- 這里(@A := d.`name`) and 0 )的and,只是為了和0進(jìn)行與運(yùn)算,不影響和@D相加最后的結(jié)果 ((@A := d.`name`) and 0 )+@D:= @CEND)ORDER BY d.`name`;

首先有一個(gè)樣表,結(jié)構(gòu)如下:

特意將sort打亂來模擬場(chǎng)景,現(xiàn)在需要按照name分組,使sort在每一組name中是從0開始有序的數(shù)

執(zhí)行sql

OK

取分組后的前n名SET @rank:=0;SELECT * FROM (SELECT a.*,IF(@tmp=deptno,@rank:=@rank + 1,@rank:=1) AS group_id,@tmp:=deptno AS tmpFROM employee a ORDER BY deptno,sal DESC) bWHERE b.group_id<=5

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 邵阳市| 秦安县| 教育| 长垣县| 南京市| 陵川县| 葵青区| 嵊州市| 宝鸡市| 酒泉市| 若羌县| 呼玛县| 玉龙| 巴马| 通渭县| 威宁| 马关县| 兴宁市| 兴安县| 杭锦后旗| 澳门| 石嘴山市| 库伦旗| 罗江县| 偏关县| 海南省| 华宁县| 南木林县| 云和县| 黄冈市| 景洪市| 息烽县| 炎陵县| 富顺县| 新邵县| 监利县| 辽中县| 祁连县| 岫岩| 花垣县| 加查县|