为了账号安全,请及时绑定邮箱和手机立即绑定

mysql - 在必须对一组数据进行排序后逐行更新

mysql - 在必须对一组数据进行排序后逐行更新

RISEBY 2021-08-04 15:19:40
我table1 在没有主键的 MySQL Db 中有一个这样的表:+---------+-------------+------+-----+---------+-------+| Field   | Type        | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| id      | int(11)     | YES  |     | NULL    |       || value   | varchar(25) | YES  |     | NULL    |       || my_date | date        | YES  | MUL | NULL    |       || my_time | time        | YES  |     | NULL    |       |+---------+-------------+------+-----+---------+-------+在按 my_date 和 my_time 值对表进行排序后,是否有可能从给定值开始更新 id 值?例如从这组值+------+------------+----------+| id   | my_date    | my_time  |+------+------------+----------+|    0 | 2018-03-01 | 09:02:00 ||    0 | 2018-03-01 | 09:01:00 ||    0 | 2018-03-01 | 09:00:00 |+------+------------+----------+我想获得+------+------------+----------+| id   | my_date    | my_time  |+------+------------+----------+|  100 | 2018-03-01 | 09:00:00 ||  101 | 2018-03-01 | 09:01:00 ||  102 | 2018-03-01 | 09:02:00 |+------+------------+----------+我尝试过这样的事情但没有成功:try {    int idFromToStart = 100;     String query = "SELECT IFNULL(id, 0) FROM table1 WHERE my_date > '2018-02-28' order by my_date, my_time";    preparedStatement =con.prepareStatement(query, ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);                ResultSet rs = preparedStatement.executeQuery(query);    System.out.println("query " + query);                if (rs.next()) {        rs.updateLong(1, idFromToStart);        System.out.println("rs.getLong(1)) "+rs.getLong(1)+ " idFromToStart "+idFromToStart);        idFromToStart++;    }} catch (SQLException ex) {    System.out.println("Error db " + ex.getMessage() + " " + ex.toString());} 
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信