mysql 对结果重新编号_为MySQL结果行编号
生活随笔
收集整理的這篇文章主要介紹了
mysql 对结果重新编号_为MySQL结果行编号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我有一個像下面這樣的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
來源: https://codeday.me/bug/20191105/1997224.html
總結
以上是生活随笔為你收集整理的mysql 对结果重新编号_为MySQL结果行编号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (性格分析)什么性格的人适合报考地质类专
- 下一篇: linux cmake编译源码,linu