mysql 对结果重新编号_为MySQL结果行编号
我有一個像下面這樣的mysql結(jié)果集
id name
---------------------
1 abc
1 abc
2 xyz
2 xyz
3 pqr
現(xiàn)在,我需要修改結(jié)果集,以便如下所示:
id name
---------------------
1 abc-1
1 abc-2
2 xyz-1
2 xyz-2
3 pqr
總結(jié)是我需要對結(jié)果集中的名稱列進行編號,并且該編號僅適用于結(jié)果集中具有多個值的行.
那么MySQL SELECT查詢將是什么?
解決方法:
這可能有效,但也許我現(xiàn)在想不出更好的方法
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;
編輯:如上面評論中所述,最好在應(yīng)用程序級別與數(shù)據(jù)庫級別上做到這一點
標(biāo)簽:resultset,sql,mysql
來源: https://codeday.me/bug/20191105/1997224.html
總結(jié)
以上是生活随笔為你收集整理的mysql 对结果重新编号_为MySQL结果行编号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (性格分析)什么性格的人适合报考地质类专
- 下一篇: linux开发stm32和keil的区别