如何在Mysql中编写条件更新查询?

时间:2012-06-09 10:59:45

标签: mysql

我有一个表用户。我希望仅根据某些条件更新列电子邮件。

update users set email='$email' where uid='$uid' 

(我希望仅在没有其他记录包含相同电子邮件ID的情况下更新表用户)

2 个答案:

答案 0 :(得分:2)

创建表格时,您需要将电子邮件列为唯一,以便它不允许您插入重复值。现在您可以使用上述查询,以便在表格电子邮件列表中不会重复发送电子邮件< / p>

答案 1 :(得分:0)

如果对未标记电子邮件字段/列唯一没有任何限制,那么您应该这样做。然后当出现重复条目​​时,您将收到一个可以处理的错误。

否则,如果我正确理解您的问题,您需要一个查询来更新给定UID的电子邮件,并且仅当电子邮件不在表中的任何记录时。 如果是这样,那么这样的事情应该做:

update users
set email='$email'
where uid='$uid' and (select count(1) from users where email='$email') < 1

希望这有帮助!