【问题标题】:Clear the result set in a MySQL procedure清除 MySQL 过程中的结果集
【发布时间】:2015-04-24 17:47:03
【问题描述】:

我想定义一个 MySQL 存储过程,它返回结果集中的数据。有时,我不想返回任何内容(即零行)。

我该怎么做? SELECT; 无效,SELECT NULL; 返回值为 NULL 的记录。如何选择一个空集?

【问题讨论】:

  • select null where 1=0?
  • 您需要一个引用有效行源的FROM 子句,以及一个阻止返回任何行的谓词。 @MarcB:我相信您需要一个 FROM 子句才能使用 WHERE 子句。
  • @spencer7593:是的。刚刚测试了它。所以...from dual 工作得很好。

标签: mysql select procedures


【解决方案1】:

这就是诀窍:

mysql> select null from dual where 1=0;
Empty set (0.00 sec)

【讨论】:

  • 谢谢!我不知道存在 DUAL 关键字。
  • 什么是dual,它来自哪里?
【解决方案2】:

选择的答案会起作用,但我更喜欢这种方法:

SELECT NULL LIMIT 0

应该也适用于除了 MySQL 之外的其他 SQL 变体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2014-01-24
    • 2013-01-31
    • 2011-10-05
    • 1970-01-01
    • 2014-11-10
    • 2019-02-19
    相关资源
    最近更新 更多