Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql批量update一万条

作者:淡漠伤悲   发布日期:2025-04-14   浏览:85

-- 示例代码:批量更新 MySQL 表中的 10000 条记录

-- 假设我们有一个名为 `users` 的表,包含以下字段:
-- id (主键), name, age, updated_at

-- 我们希望批量更新这 10000 条记录的 `updated_at` 字段为当前时间

-- 方法一:使用子查询进行批量更新
UPDATE users 
SET updated_at = NOW()
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM users ORDER BY id LIMIT 10000
    ) AS temp_table
);

-- 解释:
-- 1. 内部的子查询 `SELECT id FROM users ORDER BY id LIMIT 10000` 获取前 10000 条记录的 id。
-- 2. 外层的 `IN` 子句确保只更新这些 id 对应的记录。
-- 3. 使用 `NOW()` 函数将 `updated_at` 设置为当前时间。

-- 方法二:分批次更新(避免单次更新过多数据导致性能问题)
SET @batch_size = 1000;
SET @offset = 0;

WHILE @offset < 10000 DO
    UPDATE users 
    SET updated_at = NOW()
    WHERE id BETWEEN @offset + 1 AND @offset + @batch_size;

    SET @offset = @offset + @batch_size;
END WHILE;

-- 解释:
-- 1. 使用 `BETWEEN` 关键字分批次更新数据,每次更新 1000 条记录。
-- 2. `@batch_size` 和 `@offset` 是用户定义的变量,用于控制每批次的大小和偏移量。
-- 3. 使用 `WHILE` 循环确保所有 10000 条记录都被更新。

如果你需要更具体的场景或不同的批量更新逻辑,请提供更多详细信息。

上一篇:mysql 获取行号

下一篇:mysql怎么新建一个数据库

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

python mysql update

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站