Skip to content

MySQL 中如何批量修改某一字段中的数据

【需求】

在 MySQL 中写一条 SQL 实现将 url 中 http://192.168.2.6:9000 批量改为 http://192.168.51.123:9000

表结构及示例数据如下:

sql
-- ----------------------------
-- Table structure for sys_oss
-- ----------------------------
DROP TABLE IF EXISTS `sys_oss`;
CREATE TABLE `sys_oss` (
  `oss_id` bigint NOT NULL COMMENT '对象存储主键',
  `tenant_id` varchar(20) COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户编号',
  `file_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件名',
  `original_name` varchar(255) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '原名',
  `file_suffix` varchar(10) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '文件后缀名',
  `url` varchar(500) COLLATE utf8mb4_general_ci NOT NULL COMMENT 'URL地址',
  `create_dept` bigint DEFAULT NULL COMMENT '创建部门',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_by` bigint DEFAULT NULL COMMENT '上传人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` bigint DEFAULT NULL COMMENT '更新人',
  `service` varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'minio' COMMENT '服务商',
  PRIMARY KEY (`oss_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='OSS对象存储表';

-- ----------------------------
-- Records of sys_oss
-- ----------------------------
BEGIN;
INSERT INTO `sys_oss` VALUES (1814325010934108161, '000000', '2024/07/19/81cc22094efb4d70b95f49d0d43013aa.png', '测试专用图.png', '.png', 'http://192.168.2.6:9000/mjch/2024/07/19/81cc22094efb4d70b95f49d0d43013aa.png', 103, '2024-07-19 23:42:46', 1, '2024-07-19 23:42:46', 1, 'minio');
INSERT INTO `sys_oss` VALUES (1815590913332068353, '000000', '2024/07/23/2ab34ed686024cc191bf03f7e4a0d34c.jpg', 'QRCode.jpg', '.jpg', 'http://192.168.2.6:9000/mjch/2024/07/23/2ab34ed686024cc191bf03f7e4a0d34c.jpg', 103, '2024-07-23 11:33:00', 1, '2024-07-23 11:33:00', 1, 'minio');
COMMIT;

【解决】

使用 MySQL 的 REPLACE 函数来实现这个需求。这个函数可以在指定的字符串中替换所有匹配的子串。

sql
UPDATE `sys_oss`
SET `url` = REPLACE(`url`, 'http://192.168.2.6:9000', 'http://192.168.51.123:9000');

替换后的数据:

sql
BEGIN;
INSERT INTO `sys_oss` VALUES (1814325010934108161, '000000', '2024/07/19/81cc22094efb4d70b95f49d0d43013aa.png', '测试专用图.png', '.png', 'http://192.168.51.123:9000/mjch/2024/07/19/81cc22094efb4d70b95f49d0d43013aa.png', 103, '2024-07-19 23:42:46', 1, '2024-07-19 23:42:46', 1, 'minio');
INSERT INTO `sys_oss` VALUES (1815590913332068353, '000000', '2024/07/23/2ab34ed686024cc191bf03f7e4a0d34c.jpg', 'QRCode.jpg', '.jpg', 'http://192.168.51.123:9000/mjch/2024/07/23/2ab34ed686024cc191bf03f7e4a0d34c.jpg', 103, '2024-07-23 11:33:00', 1, '2024-07-23 11:33:00', 1, 'minio');
COMMIT;
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!