我可以在更新mysql中的多行时使用大小写

时间:2015-07-05 12:35:57

标签: mysql sql

语言: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)

1 个答案:

答案 0 :(得分:0)

可以使用case。我不确定你的“性能问题”是什么意思。如果您的查询列出了10,000个ID,则可能会遇到其他问题(MySQL可以处理非常大的查询,但应用程序和服务器之间可能存在问题)。

相反,请将数据放在包含两列的表格中:ab。然后将更新更新为:

update `table` t join
       ab
       on t.a = ab.a
   set t.b = ab.b;

使用ab(a)上的索引,这应该会有很好的表现。