今天我有一位同事写了一个不正确的书面SQL更新。此更新声明如何工作?
UPDATE table SET column = 'change'
WHERE id = 2401 OR 2402 OR 2403 OR 2404 OR 2405 OR 2406;
Query OK, 264 rows affected (0.03 sec)
Rows matched: 9997 Changed: 264 Warnings: 0
为什么这会工作?
我以为最多只会更新1行,ID是唯一的。和2402和2403 ....等没有与任何东西匹配。
它更新表中的每一行,因为MySQL将每个ID从2402解释为true。 '在哪里ID = 2401或真或或真或真或真;' – 2013-03-15 21:14:19
欢迎来到MySQL的美妙世界,而不是拒绝不正确的SQL试图猜测你的意思,让你的生活更轻松。我认为这是MySQL中的一个错误 - SQL语法显然是错误的,不应该放在第一位。 – 2013-03-15 21:21:33