mysql语句如何实现在一张表中对a字段分组后,对于相同的a字段,再对b属性进行升顺修改?

举上图说明,我现在要实现的是对于相同的bill_id,对bill_details_idx的值进行修改,从0升顺,步长为1,如对于bill_id为10的bill_details_idx的值分别为0、1;对于bill_id为19的bill_details_idx的值分别为0、1、2。因数据量太大,原来用JAVA语句实现的耗时太长,希望的高手帮忙,完全用SQL语句去实现,我用的是MYSQL数据库。

如果每一行的id与bill_id不相同的话,可以

update t
set bill_details_idx = (
    select count(t1.r) 
    from (select id,bill_id,1 r from t) t1 
    where t.bill_id=t1.bill_id and t1.id<t.id
  )

温馨提示:内容为网友见解,仅供参考
无其他回答

mysql语句如何实现在一张表中对a字段分组后,对于相同的a字段,再对b属 ...
回答:如果每一行的id与bill_id不相同的话,可以 update tset bill_details_idx = ( select count(t1.r) from (select id,bill_id,1 r from t) t1 where t.bill_id=t1.bill_id and t1.id<t.id )

mysql根据某个字段内容排序
SELECT * FROM yourtable ORDER BY a ASC , b DESC这个就是你想要的 yourtable你的表名 a,b为你的字段名

mysql中的select语句where条件group by ,having , order by,limit的...
这个是按照分组属性进行分组,所有分组属性上值相同的记录被分为一组,作为结果中的一条记录,后面的having是对分组进行过滤的条件,必须和group by一起使用 order by 排序属性 是对结果集合进行排序,可以是升序asc,也可以是降序desc limit 起始记录位置,取记录的条数 对记录进行选取,主要用来实现...

mysql如何查询表中所有的字段?
在查询数据分组时,可以使用GROUP BY关键字进行分组查询。例如,查询学生表中按性别分组的数据,或查询员工表中按部门编号分组的工资总和。在分组查询后,可能需要对数据进行过滤,MySQL提供了HAVING子句,用于在分组后对数据进行过滤,语法格式为:SELECT 字段名 表名 GROUP BY 字段名 HAVING 条件。为了优化...

【mysql】中的多表连接是什么,以及如何实现全外连接查询?
当记录满足连接条件时,流程转移到下一张表t1,使用BNL缓存将符合条件的记录添加到缓存中。此过程递归进行,t2记录写入t1缓存,t1记录写入t3缓存,依此类推,直至t4表处理并返回结果。文章进一步探讨了连接缓存双向链表设计,以及在构建双向链表时init_join_cache函数的作用,描述了连接缓存field_desc[]存储...

mysql怎么添加索引sql语句
工具:mysql数据库创建一个user的表里边的字段 1.普通索引 添加INDEX ALTER TABLE `table_name` ADD INDEX index_name ( `column` )下面演示下给user表的name字段添加一个索引 2.主键索引 添加PRIMARY KEY ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )3.唯一索引 添加UNIQUE ...

MySQL入门门门?[第一篇](附Docker使用教程)
上述语句表示创建一个名为t_user的表,其中有两个字段,一个叫id到为int类型,作为该表的主键(非空且不能重复,后面约束会讲),id的值自增1。username字段则为可变长度字符,最多10个字符且不能有重名。 此时再执行show tables就能看见表名的输出 查看表结构,创建后,可以通过desc [表名]查看表的结构(不是表数据...

mysql如何优化like%关键字查询?
如需进一步提升查询速度,优化SQL语句是关键。以下30个方法有助于提高MySQL查询效率:1. 避免使用!=或>操作符,以减少全表扫描。2. 尽可能在查询中使用索引字段,提升性能。3. 对于NULL值判断,尽量避免使用LIKE或IN操作符。4. 将OR操作符替换为UNION ALL,避免全表扫描。5. 使用IN或NOT IN时,...

如何执行函数返回的sql语句如何执行函数返回的sql语句设置
1、首先,打开sql查询器,连接上相应的数据库表,例如test表,以score字段倒序为例。2、点击“查询”按钮,输入:select*fromtestorderbyscoredesc;。3、点击“运行”按钮,此时会发现score字段按倒序排序查询出了。如何用sql语句排序一个倒一个顺比如az这个字段是顺序ascid这个字 例如,按学生学号升序...

关于mySql 中乐观锁与读已提交(事务隔离级别)的搭配使用问题!!求大神...
对于数据范围内存在间隙的,需要根据隔离级别确认是否对间隙加锁。 默认的 REPEATABLE READ 隔离级别,为了保证可重复读,除了对数据本身加锁以外,还需要对数据间隙加锁。 READ COMMITTED 已提交读,不匹配行的记录锁在 MySQL 评估了 where 条件后释放。 对于update 语句,InnoDB 执行 "semi-consistent" 读取,这样它会将...

相似回答