我可以使用2个不同列中的信息来指定UPDATE查询中更新信息的位置吗?

时间:2015-11-11 08:54:07

标签: php mysql sql

考虑下表:

Email | Message | Votes
------+---------+-------
Email1| Msg1    | 2
------+---------+-------
Email2| Msg2    | 1
------+---------+-------
Email3| Msg2    | 3

现在,我想使用以下查询更新投票列下的第三个单元格:

UPDATE tablename SET Votes=4 WHERE Message=Msg2

但问题是它会更新投票下的两个单元格,其中 Msg2 存在。但我想更新电子邮件= Email3 消息= Msg2 的单元格。

可以使用UPDATE查询吗?

1 个答案:

答案 0 :(得分:2)

使用多个condtition并将其与AND

结合使用
UPDATE tablename 
SET Votes = 4 
WHERE Message = 'Msg2'
  AND Email   = 'Email3';

或使用行构造函数:

UPDATE tablename 
SET Votes = 4 
WHERE (Message, Email) = ('Msg2','Email3');

SqlFiddleDemo

修改

  

我试过但它没有用。它没有更新任何东西

因此,您提供的数据与您提供的数据不同。可能是空白。尝试:

UPDATE tablename 
SET Votes = 4 
WHERE TRIM(Message) = 'Msg2'
  AND TRIM(Email)   = 'Email3';