今天我有一位同事寫了一個不正確的書面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