我有下表:
id | name | address| code
--------------------------
1 | ABC| XYZ |
2 | DEF| GHI |
3 | JKL| MNO |
4 | PQR| STU |
5 | VWW| QWE |
我需要更新表并在列代码中插入值。 我有代码
UPDATE mytable
SET code=
CASE id
WHEN 1 THEN 'ASD'
WHEN 2 THEN 'FGH'
WHEN 3 THEN 'JKL'
WHEN 4 THEN 'QWE'
WHEN 5 THEN 'BAR'
END
WHERE id IN (1,2,3,4,5);
我可以在单个查询中执行此操作,因为我必须更新14,000条记录。 谢谢!
答案 0 :(得分:0)
使用以下格式的UPDATE查询:
UPDATE mytable SET code = CASE WHEN id = 1 THEN 'ASD'
WHEN id = 2 THEN 'FGH'
WHEN id = 3 THEN 'JKL'
WHEN id = 4 THEN 'QWE'
WHEN id = 5 THEN 'BAR' ELSE code END
答案 1 :(得分:0)
我认为这就是你所需要的
UPDATE mytable
SET code=
CASE round(rand()*5)
WHEN 1 THEN 'ASD'
WHEN 2 THEN 'FGH'
WHEN 3 THEN 'JKL'
WHEN 4 THEN 'QWE'
WHEN 5 THEN 'BAR'
WHEN 0 THEN 'ASD'
END
答案 2 :(得分:0)
创建包含CSV
列和id
列的code
文件。然后将CSV
导入临时表。
<强>查询强>
create temporary table tempTable (id int, code varchar(255));
load data infile 'csv_file_path' into table tempTable ;
然后使用带有临时表的JOIN
更新您的表。
update myTable t1
join tempTable t2
on t1.id = t2.id
set t1.code = t2.code;
之后,只需删除临时表。
drop temporary table if exists tempTable;