sql - 如何选择一个空的结果集?

想要改进这篇文章? 提供这个问题的详细答案,包括引用和解释为什么你的答案是正确的。没有足够细节的答案可能会被编辑或删除。

我在 MySQL 中使用存储过程,带有 CASE 语句。

在 CASE 的 ELSE 子句中(相当于默认:)我想选择并返回一个空的结果集,从而避免通过不处理 ELSE 的情况而引发 SQL 错误,而是返回一个空的结果集,就像常规查询不会返回任何行。

到目前为止,我已经设法使用以下方法做到了:
Select NULL From users Where False

但我必须命名一个现有的表,例如本例中的“用户”。 它可以工作,但如果最终重命名或删除使用的表名,我更喜欢一种不会中断的方法。

我试过 Select NULL Where False 但它不起作用。

使用 Select NULL 不会返回一个空集,而是返回一个包含名为 NULL 的列且具有 NULL 值的行。

最佳答案

MySQL 中有一个名为“dual”的虚拟表,您应该可以使用它。

select
    1
from
    dual
where
    false

这总是会给你一个空的结果。

https://stackoverflow.com/questions/1456106/

相关文章:

mysql - 将 MySQL 数据库置于版本控制之下?

php - 基于信誉实现权限

php - 在 Android 上运行 AMP (apache mysql php)

mysql - 如果需要太长时间,如何停止 MySQL 查询?

mysql - 如何在 MySQL 中获得减去 6 周的时间戳?

mysql - 何时在 mysql 中使用 TEXT 而不是 VARCHAR

sql - 在 MySQL 中重命名外键列

mysql - 我应该只坚持使用 AWS RDS 自动备份还是数据库快照?

sql - 在子查询中引用外部查询的表

mysql - 如何将两列与mysql中的现有列名合并为一?