我正在尝试用指定的字段替换表中的所有数据(例如user_id = some_number)。我已尝试DELETE
,然后是INSERT
,但这似乎有些问题,我正在寻找更好的解决方案来做到这一点。另外,大多数行仍然是相同的,所以这种方法可能效率不高。我遇到了INSERT ON DUPLICATE KEY / REPLACE
,但如果我理解正确,那些会保留一些旧数据而不删除它。我已经考虑过做SELECT
并比较PHP
中的值,但是想到mysql可能已经为我实现了这个。是否可以选择使用查询?
更新: 为了更清楚,让我们说我在表格中有my_table这些值:
col1 col2 col3
v1 v2 v3
v1 v4 v5
v1 v6 v7
v2 v8 v9
我想用这些数据替换所有col1 = v1行:
col1 col2 col3
v1 v10 v11
v1 v4 v5
所以我应该最后删除一行,保持一行,然后更新另一行。 因此,在操作结束时,表格将如下所示:
col1 col2 col3
v1 v10 v11
v1 v4 v5
v2 v8 v9
这清楚了吗?
答案 0 :(得分:3)
START TRANSACTION;
DELETE FROM my_table WHERE col1='v1';
INSERT INTO my_table (col1, col2, col3) values ('v1', 'v10', 'v11');
INSERT INTO my_table (col1, col2, col3) values ('v1', 'v4', 'v5');
COMMIT;