欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql中如何按分組添加序號

 更新時(shí)間:2023年06月19日 11:08:32   作者:javafg  
這篇文章主要介紹了mysql中如何按分組添加序號問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mysql按分組添加序號

不按分組添加序號

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á)到生成序號列的目的

按分組添加序號

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 desc

mysql分組給字段設(shè)置序號進(jìn)行排序

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

最新版本v2.0

分組update設(shè)置序號

最新的sql如下:

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

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

特意將sort打亂來模擬場景,現(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 tmp
	FROM employee a  ORDER BY deptno,sal DESC) b
WHERE b.group_id<=5

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySql中使用INSERT INTO語句更新多條數(shù)據(jù)的例子

    MySql中使用INSERT INTO語句更新多條數(shù)據(jù)的例子

    這篇文章主要介紹了MySql中使用INSERT INTO語句更新多條數(shù)據(jù)的例子,MySQL的特有語法,需要的朋友可以參考下
    2014-06-06
  • innodb_flush_method取值方法(實(shí)例講解)

    innodb_flush_method取值方法(實(shí)例講解)

    下面小編就為大家?guī)硪黄猧nnodb_flush_method取值方法(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL優(yōu)化insert性能的方法示例

    MySQL優(yōu)化insert性能的方法示例

    對于一些數(shù)據(jù)量較大的系統(tǒng),數(shù)據(jù)庫面臨的問題除了查詢效率低下,還有就是數(shù)據(jù)入庫時(shí)間長。下面這篇文章主要給大家介紹了關(guān)于MySQL優(yōu)化insert性能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • MySQL慢查詢?nèi)罩緎lowlog的具體使用

    MySQL慢查詢?nèi)罩緎lowlog的具體使用

    本文主要介紹了MySQL慢查詢?nèi)罩緎lowlog的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • MySQL存儲過程的創(chuàng)建使用以及實(shí)現(xiàn)數(shù)據(jù)快速插入

    MySQL存儲過程的創(chuàng)建使用以及實(shí)現(xiàn)數(shù)據(jù)快速插入

    因最近想要測試一下MySQL百萬級數(shù)據(jù)處理過程,所以要一次對數(shù)據(jù)庫快速插入大量數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL存儲過程的創(chuàng)建使用以及實(shí)現(xiàn)數(shù)據(jù)快速插入的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Mac 將mysql路徑加入環(huán)境變量的方法

    Mac 將mysql路徑加入環(huán)境變量的方法

    這篇文章主要介紹了Mac如何將mysql路徑加入環(huán)境變量,有需要的朋友好按照下面的步驟操作即可
    2014-07-07
  • 詳解Mysql主從同步配置實(shí)戰(zhàn)

    詳解Mysql主從同步配置實(shí)戰(zhàn)

    這篇文章主要介紹了詳解Mysql主從同步實(shí)戰(zhàn),實(shí)例分析了Mysql主從同步的原理和實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-03-03
  • 用percona-toolkit為MySQL收集系統(tǒng)和性能信息的教程

    用percona-toolkit為MySQL收集系統(tǒng)和性能信息的教程

    這篇文章主要介紹了用percona-toolkit為MySQL收集系統(tǒng)和性能信息的教程,可以輕松地將服務(wù)器基本信息錄入數(shù)據(jù)庫,需要的朋友可以參考下
    2015-11-11
  • mysql 8.0.19 安裝配置方法圖文教程

    mysql 8.0.19 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.19 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • PHP使用mysqli擴(kuò)展連接MySQL數(shù)據(jù)庫

    PHP使用mysqli擴(kuò)展連接MySQL數(shù)據(jù)庫

    這篇文章主要介紹了PHP使用mysqli擴(kuò)展連接MySQL數(shù)據(jù)庫,需要的朋友可以參考下
    2014-08-08

最新評論