具有相同命名模式的MySQL Update

时间:2014-08-28 16:31:40

标签: mysql sql

我在TableA中有一个名为EmpNumber的列。我有一系列记录,其中EmpNumber列以CC开头。例如:CC21,CC33,CC43等。

我想将每个以CC开头的EmpNumber附加到值的末尾。

CC21将是CC21a,CC33将是CC33a,CC41将是CC41a

我可以通过指定初始值和我想要更改的内容来手动执行此操作,但我正在查看手动执行的几百次更改。

对于以CC开头的所有记录,有没有办法对单个查询执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以使用left()功能和更新中的案例

update table
set EmpNumber = case when left(EmpNumber,2) = 'CC'
  then concat(EmpNumber,'a')
  else EmpNumber end

left(EmpNumber,2)将从列中选择起始2个字符,例如left('test',2)将导致'te',因此比较左侧函数的结果以及是否等于'CC'然后将您的列与您想要的列相连人物

编辑为 Michael Berkowski 建议您可以使用简单的地方

update table
set EmpNumber =  concat(EmpNumber,'a')
where left(EmpNumber,2) = 'CC'

答案 1 :(得分:1)

嗯,如果我的问题是对的:

UPDATE table SET EmpNumber = CONCAT(EmpNumber, 'a') WHERE EmpNumber LIKE 'CC%'