2

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

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

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

4

2 回答 2

2

在创建表时,您需要将电子邮件列设为唯一,这样它就不允许您插入重复的值。现在您可以使用上述查询,这样表中的电子邮件列中就不会出现重复的电子邮件

于 2012-06-09T11:06:17.380 回答
0

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

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

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

希望这可以帮助!

于 2012-06-09T11:16:09.947 回答