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

标签 php mysql sql

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

bla 中存在 7 时返回 1

但当 bla 中的 7 不存在时,它也会返回 1,为什么????有没有一种方法可以找出更新是否成功/是否存在该行,而无需检查该行是否存在之前的额外查询?

最佳答案

一种方法使用变量:

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

SELECT @found;

更正式的方法是使用mysql_affected_rows()(参见here)。不过,默认情况下,这仅在该行实际发生更改时显示。

关于php - sql - 在没有额外查询的情况下更新时检查行是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874460/

相关文章:

javascript - 在 ActionPerformed 上添加 Div 响应

javascript - 提交之前用javascript验证xml文件是一个文件

sql - Mysql子查询: Trying to get the last order from a customer

mysql - 根据一些参数做减法

mysql - 如何选择高度体重增长的人?

php - 将面向对象的数据直接编码为关系数据库中的单行是否被认为是错误的形式?

php - 为什么我的 .htaccess 在部署时停止工作

php - 在数据库中插入行并更新其下面的行

java - 检查 java.util.date 和 MySql 时间戳是否属于同一天

sql - 在 Sequelize 后端查询中查找匹配对象