1. DO expr [, expr] ...
DO 执行表达式,但不返回任何结果。在很大程度上可以说,DO 是 SELECT expr, ... 的简写,但它的优点是,当不关心结果时,它会稍微快一些。
DO 主要用于具有副作用的函数,比如 RELEASE_LOCK()。
示例:此 SELECT 语句将暂停,但也会生成一个结果集:
1. mysql> SELECT SLEEP(5);
2. +----------+
3. | SLEEP(5) |
4. +----------+
5. | 0 |
6. +----------+
7. 1 row in set (5.02 sec)
另一方面,DO 语句暂停没有产生结果集:
1. mysql> DO SLEEP(5);
2. Query OK, 0 rows affected (4.99 sec)
这可能很有用,例如在存储函数或触发器中,这会禁止生成结果集的语句。
DO 只执行表达式。不能在所有可以使用 SELECT 的情况下使用它。例如,DO id FROM t1 是无效的,因为它引用了一个表。