mysql 對結果重新編號 為MySQL結果行編號

2021-10-22 04:11:49 字數 700 閱讀 8639

我有乙個像下面這樣的mysql結果集

id name

1 abc

1 abc

2 xyz

2 xyz

3 pqr

現在,我需要修改結果集,以便如下所示:

id name

1 abc-1

1 abc-2

2 xyz-1

2 xyz-2

3 pqr

總結是我需要對結果集中的名稱列進行編號,並且該編號僅適用於結果集中具有多個值的行.

那麼mysql select查詢將是什麼?

解決方法:

這可能有效,但也許我現在想不出更好的方法

set @i = 0;

select

f.id,

@i:=@i+1 as i,

case

when c.counter <= 1 then f.name

else concat(f.name,'-',(@i % c.counter) +1)

end as name

from

foo f

join (select id, count(*) as counter from foo group by id) c on c.id = f.id

order by

f.id,name;

標籤:resultset,sql,mysql

mysql對結果計算 MYSQL計算結果

我正在 mysql 5.0中構建乙個查詢來計算學生的學期成績.初始表 studentitemgrades 包含將用於計算最終成績的作業列表等.每項作業都有乙個possiblescore,grade和weight.計算應對所有類似加權的專案進行分組,並根據分配到期的日期範圍提供sum grade su...

MySQL對查詢結果排序

從表中查詢出來的資料,可能是無序的,或者其排列順序表示使用者期望的 使用order by對查詢結果進行排序 select 欄位名1,欄位名2,from 表名 order by 欄位名1 asc desc 欄位名2 asc desc 指定的欄位名1 欄位名2,是對查詢結果排序的依據 引數asc,表示按...

MySQL對查詢結果排序

mysql對查詢結果排序,從表中查詢出來的資料,可能是無序的,或者其排列順序表示使用者期望的。使用order by對查詢結果進行排序 select 欄位名1,欄位名2,from 表名 order by 欄位名1 asc desc 欄位名2 asc desc 指定的欄位名1 欄位名2,是對查詢結果排序...