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结果行编号相关推荐
- mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer
*************************************************************************** 部署MySQL自动化运维工具inception+ ...
- mysql 对库中表授权_对mysql数据库的授权和使用AND案例
对mysql数据库的授权和使用 权限: create user 'guest'@'ip地址' identified by '123' //ipconfig 授权: grant 权限的具体使用 on.t ...
- mysql面试题sql语句_数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex ...
- mysql和python的关系_八MySQL与Python
<1>数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. ...
- mac下安装mysql 5.7.11卡住_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决
最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17. 1.官网下载 点 ...
- MySQL数据库实用教程考核_《MySQL数据库实用教程》郑明秋,蒙连超,赵海侠【pdf】...
内容简介 郑明秋.蒙连超.赵海侠主编的<MySQL数据库实用教程>是作者在多年的数据库开发实践与教学经验的基础上,根据计算机相关专业的职业岗位能力需求及学生的认知规律倾心组织编写的.本教材 ...
- mysql 执行计划 什么用_简述MySQL的执行计划的作用及使用方法
作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题.关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们 ...
- MySQL数据库test连接语句_【MySQL数据库开发之二】MySQL 基础语句的书写与操作!...
本篇Himi简单介绍一些MySQL数据库的基础操作: 注:mysql 语句对大小写不敏感,语句以分号";"标识语句结束: 1. 首先使用两个简单的查询语句: 查询当前版本:se ...
- mysql sa密码是什么_忘记mysql数据库root密码
找到配置文件my.ini ,然后将其打开,可以选择用记事本打开,查找的方法如下: 打开后,搜索mysqld关键字 找到后,在mysqld下面添加skip-grant-tables,保存退出. PS: ...
- mysql去掉两个最高分_从MySQL中的单列获取最高得分值,从两列获取最高得分值...
让我们首先创建一个表-mysql> create table DemoTable790 ( Score1 int, Score2 int ); 使用插入命令在表中插入一些记录-mysql> ...
最新文章
- c语言储存10的500,c语言程序基础练习题500道
- Java盗刷_一个依赖搞定 Spring Boot 反爬虫,防止接口盗刷!
- wcf系列---- binding的使用(1)
- 【蓝桥杯】子串分值---笔记
- Spring Boot 2.0.5 配置Druid数据库连接池
- CSS基础(part19)--CSS3属性选择器
- 阻止你变现的,从来都不是开源许可证
- p2762-太空飞行计划问题【网络流,最大权闭合图,最小割】
- 无线数传电台工业控制的应用
- 如何从一段视频中一次性修整多个片段
- 核密度函数图matlab_4.3 描述数据分布:核密度图
- VS找不到System.Web.Extensions.dll的解决办法
- 计算机考试的话语,鼓励别人考试的句子
- mysql数据类型内存_MySQL数据库基本功-常用数据类型介绍和优化技巧
- 关于魔兽守卫军的改进建议
- unity的ngui的字体变形问题
- 第三届蓝桥杯Java组 黄金队列
- 金三银四,中高级测试面经,我不信你能看完!
- 贸易融资实务:出口押汇与进口押汇
- flutter去除阻尼效果