Mysql更新查询以更新多行中的列

时间:2015-10-09 06:55:39

标签: mysql

我有一个包含两列a和b的表。类似的东西:

     a  |  b
   +----+----+
     x  |  l
     y  |  m
     z  |  n

使用单个mysql更新查询,我想更新多行中的列...

update tableName set b = l1,m1,n1 where a= x,y,z respectively.

更新查询应该是什么样的?

编辑我的问题以使其更清晰: 我不想在列值中附加1。我想将它们更新为与旧值不同的新值。 那么使用单个MYSQL查询有没有办法做到这一点?

基本上,我想将这些查询合并为一个:

update tableName set b=newVal, where a=something;
update tableName set b=anotherNewVal, where a=something_else;
update tableName set b=yetAnotherNewVal, where a=something_else_again;

非常感谢!

3 个答案:

答案 0 :(得分:0)

试试这个

UPDATE tableName SET b = CONCAT(b, '1') WHERE a = 'x' OR a = 'y' OR a = 'z'

OR

UPDATE tableName SET b = CONCAT(b, '1') WHERE a IN ('x', 'y', 'z')

答案 1 :(得分:0)

   $('.childboxes').each(function () {

    var divs = $(this);
    var divID = $(this).attr('id');
    var position = divs.position();
    var left = position.left;
    var top = position.top;


    AllDivsCoor.push({ "id": divID, "leftcoor": left, "topcoor": top });



});

AllDivsCoor.sort('leftcoor');

答案 2 :(得分:0)

非常感谢你的帮助。 @Giorgos Betsos,@ mynawaz和@Mathew。我找到了查询!

update tableName 
set b = case 
     when a ='x' then 'a is x' 
     when a ='y' then 'a is y' 
     else b 
end;