mysql 批量新增或更新写法
时间: 2024-09-30 09:10:30 浏览: 31
在MySQL中,批量新增或更新数据通常通过使用预处理语句(PreparedStatement)或者存储过程来提高效率并防止SQL注入。以下是两种常见的批量操作写法:
1. **使用预处理语句(Prepared Statements)**:
```sql
-- 使用PHP示例 (假设有一个users表)
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
// 创建一个数组来保存要插入的数据
$data = array(
['John Doe', 'john@example.com'],
['Jane Smith', 'jane@example.com'],
);
foreach ($data as $row) {
$stmt->execute($row);
}
// 或者使用UPDATE:
$stmt = $pdo->prepare("UPDATE users SET name=? WHERE id=?");
$data = [
['New Name', 1], // 更新id为1的用户名字
['Updated Name', 2] // 更新id为2的用户名字
];
foreach ($data as $row) {
$stmt->execute($row);
}
2. **使用存储过程**:
- 首先创建存储过程:
```sql
CREATE PROCEDURE batch_insert_or_update (IN data_table TEXT, IN values_list TEXT)
BEGIN
REPLACE INTO data_table VALUES UNNEST(SPLIT(values_list, ','));
END;
```
- 调用存储过程:
```sql
CALL batch_insert_or_update('users', '("John Doe", "john@example.com"), ("Jane Smith", "jane@example.com")');
```
记得在实际应用中替换`$pdo`为你的数据库连接实例,并确保适当的安全措施。
阅读全文