在 mysql 中执行更新、插入或删除之前,我经常需要检查表列。我想知道这是否多余,因为 mysql WHERE
子句已经是一个条件。
示例:
名为
private_messages
的数据库表存储私有(private)消息 用户。名为
read
的列的默认值为0
并更新为1
当用户已阅读消息时。
两种方法中哪一种更新表最有效和准确?
执行查询,返回read
的值,并使用if
条件:
if (read == 0) //if user did not read message
{
UPDATE private_messages
SET read = 1
WHERE id = 48 //the unique, auto increment index
}
或者简单地在查询中添加一个 WHERE AND
子句:
UPDATE private_messages
SET read = 1
WHERE id = 48
AND read = 0
并使用 mysql_affected_rows()
确定行是否已更新。
编辑:另一种情况是,如果某列具有特定值,则删除一行。我应该使用 if
条件还是 where
?
最佳答案
我相信 MySQL 会检查您尝试插入的新值是否与现有值相同,并且只有在它们不同时才执行写入操作。所以不需要 IF 语句。
关于php - Mysql WHERE 子句或 php IF 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6879157/