【发布时间】:2020-06-11 11:51:57
【问题描述】:
+------------+--------+----------+-------+-----+--------+
| customerid | id | password | level | age | name |
+------------+--------+----------+-------+-----+--------+
| 1 | L1234 | 12345A | J1 | 24 | |
| 2 | L12134 | 12345a | J1 | 23 | SYPARK |
+------------+--------+----------+-------+-----+--------+
2 rows in set (0.00 sec)
mysql> DELETE FROM customer WHERE age='23';
1。查询正常,1 行受影响(0.00 秒)
mysql> DELETE FROM customer WHERE age='23';
2。查询正常,0 行受影响(0.00 秒)
在这种情况下。为什么这个查询返回“OK”?这是2号。
我认为它不起作用(得到错误)。因为在 Query number of 2 之前删除的数据不存在。
但我得到了 OK 的结果。为什么会这样?
【问题讨论】:
-
您要求它删除所有匹配的记录。它没有删除,因为没有。没关系。如果您想检查事情是否存在并失败,请自己检查/报告。 “为什么会这样?”我猜是检查 ANSI SQL 标准。没有匹配的记录并没有固有的错误。
标签: mysql sql database where-clause sql-delete