文章詳情頁
mysql中如何按分組添加序號
瀏覽:63日期:2023-09-05 20:32:01
目錄mysql按分組添加序號不按分組添加序號按分組添加序號mysql分組給字段設(shè)置序號進行排序分組update設(shè)置序號取分組后的前n名總結(jié)mysql按分組添加序號不按分組添加序號
1.第一種
select (@i := @i + 1) as rownum,b.* from table b, (SELECT @i := 0) as a order by region_id desc2.第二種
set @i=0;select @i:=@i+1 as rownum, b.* from table b order by region_id desc上面兩種方法原理就是,事先定義一個變量,通過變量的遞加以及虛擬表的聯(lián)查達到生成序號列的目的
按分組添加序號之前有一個給商戶的員工進行排序的需求,結(jié)果我沒有按照商戶進行設(shè)置排序sort值,后面所有的商戶的員工的sort值都混在一起了,只能寫數(shù)據(jù)庫腳本來進行糾正
最新版本v2.0
分組update設(shè)置序號最新的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進行與運算,不影響和@D相加最后的結(jié)果 ((@A := d.`name`) and 0 )+@D:= @CEND)ORDER BY d.`name`;首先有一個樣表,結(jié)構(gòu)如下:
特意將sort打亂來模擬場景,現(xiàn)在需要按照name分組,使sort在每一組name中是從0開始有序的數(shù)
執(zhí)行sql
OK
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
標簽:
MySQL
數(shù)據(jù)庫
相關(guān)文章:
排行榜
