6

我一直在 MySQL 控制台中执行以下查询:

INSERT INTO pixel_window 
   SELECT id 
      FROM pixels 
         WHERE pixel_id='type2' 
            ORDER BY id DESC 
               LIMIT 5;

并得到:

Query OK, 5 rows affected, 1 warning (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Note
   Code: 1592
Message: Statement may not be safe to log in statement format.
1 row in set (0.00 sec)

我玩了一点查询,发现当LIMIT被省略时,警告消失了。

这个警告是什么意思?为什么LIMIT这个子查询有问题?

4

1 回答 1

6

它被认为是一个错误。

当您未在更新中定义“order by”子句时,可能会引发警告。在您的情况下,它被认为是安全的,因为您按 ID 订购(假设 id 是唯一的 id?)

在此处阅读有关错误报告的更多信息:http://bugs.mysql.com/bug.php?id= 42415

于 2012-07-09T14:06:33.460 回答