MySQL 删除操作返回值及成功判断

MySQL 删除操作返回值及成功判断

在MySQL中,DELETE语句用于从表中删除数据行。那么,一个成功的MySQL DELETE语句会返回什么呢?如何检查DELETE是否成功?

阅读更多:MySQL 教程

删除操作返回值

MySQL中,DELETE语句执行成功时并不会返回任何值。如果DELETE语句成功删除了一行或多行数据,则会返回一个空结果集。

例如,我们执行以下DELETE语句:

DELETE FROM `mytable` WHERE `id` = 100;
Mysql

如果该语句成功删除了ID等于100的数据行,则该语句会返回一个空结果集。

成功判断方法

由于DELETE语句的返回值是空结果集,因此不能直接通过返回值来判断删除是否成功。但是,我们可以使用以下两种方法来判断DELETE是否成功:

  1. 使用受影响的行数判断

在MySQL中,可以使用ROW_COUNT()函数来查询上一次执行DELETE语句时受影响的行数。如果受影响的行数大于0,则说明DELETE语句成功执行。

例如,我们执行以下DELETE语句:

DELETE FROM `mytable` WHERE `id` > 100;
Mysql

可以使用以下SQL语句查看删除了多少行数据:

SELECT ROW_COUNT() AS `Affected Rows`;
Mysql

如果结果为1,则说明成功删除了一行数据;如果结果大于1,则说明成功删除了多行数据。

  1. 使用错误码判断

在MySQL中,如果DELETE语句执行出错,则会返回一个非0的错误码。因此,我们可以在执行DELETE语句后判断错误码是否为0,来判断DELETE是否成功。

例如,我们可以使用以下PHP代码来执行DELETE语句并判断是否成功:

$mysqli = new mysqli("localhost", "root", "password", "mydb");
if ($mysqli->connect_errno) {
    die("Failed to connect to MySQL: " . $mysqli->connect_error);
}

if ($mysqli->query("DELETE FROM `mytable` WHERE `id` > 100")) {
    if ($mysqli->errno == 0) {
        echo "DELETE succeed.";
    } else {
        echo "DELETE failed: " . $mysqli->error;
    }
} else {
    echo "DELETE failed: " . $mysqli->error;
}

$mysqli->close();
Mysql

以上代码中,如果DELETE语句执行成功并且错误码为0,则会输出“DELETE succeed.”;如果DELETE语句执行失败,则会输出对应的错误信息。

总结

本文介绍了MySQL中DELETE语句的返回值及成功判断。通过使用受影响的行数和错误码,我们可以判断DELETE语句是否成功执行。实际应用中,应根据具体情况选择合适的方法进行判断。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册