+------------+--------+----------+-------+-----+--------+
| 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号。
我认为它不会工作(得到错误)。因为在查询编号2之前删除的数据不存在。
但我得到了好的结果。为什么会这样?
1条答案
按热度按时间yk9xbfzb1#
在这种情况下。为什么这个查询返回“ok”?
Query OK
只是意味着查询执行时没有错误(语法错误或运行时错误)——这里就是这样:查询没有失败,只是没有找到任何要执行的记录delete
.但是,您可以在消息的其余部分看到,查询没有影响任何行;这是一个
DELETE
语句,表示未删除任何行。