交换存储在表的2列中的值

时间:2015-04-28 11:49:05

标签: mysql sql-update

我有一张表格如下:

项目:

name VARCHAR(50), //STORES Item's Name
brand VARCHAR(50), //STORES Item's Brand
sales_rate DOUBLE(8,2),
PK(name, brand)

此表的主键是数据库中其他表的外键。

现在我的问题是,用户错误地在brand列中的name列和项目品牌中插入了该项目的名称。所以我的问题是如何编写更新查询以交换列namebrand的值?

2 个答案:

答案 0 :(得分:2)

您可以尝试这样:

UPDATE myTable SET x=(@temp:=x), x = y, y = @temp
where somecondition;

由于您评论说只有3行受到影响,因此您必须添加somecondition

答案 1 :(得分:1)

你可以这样做

UPDATE `items`
   SET name=(@temp:=name), name= brand, brand = @temp
   WHERE (name, brand) = ('somebrand', 'somename');

它有效..