我有乙個像下面這樣的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,是對查詢結果排序...