sql - 在没有额外查询的情况下更新时检查行是否存在?

时间:2016-11-29 19:42:19

标签: php mysql sql

echo mysqli_query($con, "UPDATE stuff SET fieldd = 2 WHERE bla = 7");

1

中存在7时,它会返回bla

但是当bla中的1不存在时,它也会返回7,为什么????有没有办法找出更新是否成功/如果此行存在而没有检查此行是否存在以前的额外查询?

1 个答案:

答案 0 :(得分:0)

一种方法使用变量:

SET @found = 0;
UPDATE stuff
    SET fieldd = if(@found := 1, 2, 2)
    WHERE bla = 7;

SELECT @found;

更正式的方法是使用mysql_affected_rows()(请参阅here)。但是,默认情况下,这仅显示行实际是否已更改。