语言:Java DB:MySql
我有2个排序列表来更新'table':
List A :
--------
a1
a2
.
.
.
a10000
list B:
--------
b1
b2
b3
...
b10000
table
---------
Column A Column B
我可以使用案例......什么时候?是否有任何性能问题(10000条记录)?
UPDATE `table` SET `A` = CASE
WHEN B = b1 THEN a1
WHEN B = b2 THEN a2
....
WHEN B = b10000 THEN a10000
END
WHERE B in (b1,b2,....b10000)
答案 0 :(得分:0)
你可以使用case
。我不确定你的“性能问题”是什么意思。如果您的查询列出了10,000个ID,则可能会遇到其他问题(MySQL可以处理非常大的查询,但应用程序和服务器之间可能存在问题)。
相反,请将数据放在包含两列的表格中:a
和b
。然后将更新更新为:
update `table` t join
ab
on t.a = ab.a
set t.b = ab.b;
使用ab(a)
上的索引,这应该会有很好的表现。