码迷,mamicode.com
首页 > 数据库 > 详细

解决针对MySQL中对于某一个区间段范围的数据更新的情况

时间:2020-06-06 12:45:48      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:技术   set   针对   员工   mic   mysql   update   过程   mys   

  (1)在使用更新update的过程中,我们可能会想要更新比如id段在某一个指定范围内的数据,如果我们是想要更新前面多少行的数据的话可以直接:

UPDATE tb_name SET column_name=‘value‘ ORDER BY id ASC LIMIT 20;

  比如我想要把下面的这个员工信息表的manager_id的信息进行更改,把员工id在109~113的员工更改为120,相当于一次人事调动。

技术图片

  (2)这样就可以实现只更新前面20条数据,但是如果我们想要更新比如20到30这个id段的数据的话,不可以直接 LIMIT (20,30)这样子来使用,所以可以考虑使用配合子查询的方式:

UPDATE tb_name SET column_name = ‘value‘ WHERE id in (SELECT id FROM (SELECT * FROM tb_name ORDER BY id ASC LIMIT 20,30) AS new_name);

  在例子中我们就可以使用配合到子查询的方式,select可以配合着Limit使用,而且9,5表示的是从第10行开始的五条数据,刚好对应的是109-113这五条数据:

UPDATE `employees` SET manager_id = 120 WHERE employee_id IN (SELECT employee_id FROM (SELECT * FROM `employees` ORDER BY employee_id ASC LIMIT 9,5) AS sub_employees);

  技术图片

解决针对MySQL中对于某一个区间段范围的数据更新的情况

标签:技术   set   针对   员工   mic   mysql   update   过程   mys   

原文地址:https://www.cnblogs.com/dashenaichicha/p/13054102.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!