MYsql语句批量修改
时间: 2023-11-21 08:50:08 浏览: 99
MySQL语句批量修改可以使用UPDATE语句结合CASE语句和IN子句来实现。以下是一个示例:
UPDATE categories
SET display_order = CASE
WHEN id = 1 THEN 3
WHEN id = 2 THEN 4
WHEN id = 3 THEN 5
END
WHERE id IN (1, 2, 3);
这个语句会将id为1的行的display_order设置为3,将id为2的行的display_order设置为4,将id为3的行的display_order设置为5。
请注意,使用replace into和INSERT INTO … ON DUPLICATE KEY UPDATE可能会导致数据丢失和主从上表的自增id值不一致。在更新数据时,确保要加上适当的条件,以便只更新需要修改的行数。
另外,在MySQL数据库连接配置中,别忘了加上&allowMultiQueries=true,这个配置允许使用分号";"连接的批量SQL语句执行。
相关问题
mysql 语句批量插入
你可以使用MySQL的INSERT语句来批量插入数据。这里有两种方法可以实现批量插入。
方法一:使用多个INSERT语句
你可以将多个INSERT语句放在一个字符串中,并在每个INSERT语句之间使用分号分隔。然后,使用MySQL的"INSERT INTO"语句将这个字符串作为参数传递给EXECUTE或PREPARE语句。
示例代码如下:
```
SET @sql = '';
SELECT CONCAT('INSERT INTO table_name (column1, column2) VALUES (', column1_value, ',', column2_value, ');')
INTO @sql
FROM your_data_table;
PREPARE stmt FROM @sql;
EXECUTE stmt;
```
请将"table_name"替换为你要插入数据的表名,"column1, column2"替换为你要插入数据的列名。将"your_data_table"替换为包含要插入的数据的表名。
方法二:使用INSERT INTO ... SELECT语句
另一种方法是使用INSERT INTO ... SELECT语句,将需要插入的数据从一个表直接复制到另一个表中。
示例代码如下:
```
INSERT INTO target_table (column1, column2)
SELECT column1_value, column2_value
FROM source_table;
```
请将"target_table"替换为你要插入数据的目标表名,"column1, column2"替换为你要插入数据的列名。将"source_table"替换为包含要插入的数据的源表名。
这两种方法都可以实现批量插入数据,你可以根据实际情况选择其中一种。请确保你的插入语句和数据是正确的,并根据需要进行相应的修改。
mysqlupdate语句批量修改
mysql 批量更新有以下几种方法:
1. 使用 `REPLACE INTO` 批量更新:使用该语句可以将指定的数据插入到表中,如果主键冲突则进行替换更新。示例:`REPLACE INTO test_tbl(id, dr) VALUES (1, '2'), (2, '3'), ...(x, 'y');`
2. 使用 `INSERT INTO ... ON DUPLICATE KEY UPDATE` 批量更新:使用该语句可以将指定的数据插入到表中,如果主键冲突则进行更新操作。示例:`INSERT INTO test_tbl(id, dr) VALUES (1, '2'), (2, '3'), ...(x, 'y') ON DUPLICATE KEY UPDATE dr = VALUES(dr);`
3. 创建临时表,先更新临时表,然后从临时表中更新目标表:该方法需要用户有创建临时表的权限。示例:先创建临时表 `CREATE TEMPORARY TABLE tmp(id INT(4) PRIMARY KEY, dr VARCHAR(50));`,然后将数据插入临时表 `INSERT INTO tmp VALUES (0, 'gone'), (1, 'xx'), ...(m, 'yy');`,最后使用 `UPDATE` 语句从临时表中更新目标表 `UPDATE test_tbl, tmp SET test_tbl.dr = tmp.dr WHERE test_tbl.id = tmp.id;`
4. 使用MySQL自带的语句进行批量更新:这种方法可以根据具体需求使用MySQL提供的语句来实现批量更新。
需要注意的是,如果一条条去更新记录,效率会相当慢,并且容易造成阻塞。因此,使用批量更新语句可以提高性能和效率。
阅读全文