如何进行始终返回零行的选择
Posted
技术标签:
【中文标题】如何进行始终返回零行的选择【英文标题】:how do I make a select which always returns zero rows 【发布时间】:2009-06-29 15:47:55 【问题描述】:我想确定表中是否存在任何 jdbc 驱动程序的列。
为了知道表中的列,我必须对表进行查询,然后获取信息的 ResultSetMetaData,但这在 99% 的情况下都相当昂贵。
在 mysql 我有:
SELECT * FROM <i>tablename</i> LIMIT 0,0
在 Intersystems 缓存中我有:
SELECT TOP 0 * FROM <i>tablename</i>
但是,例如,在 JavaDB 中,我根本无法应用任何限制。
是否有任何通用查询可以给我相同的结果并且对数据库性能仍然公平?
提前致谢。
【问题讨论】:
【参考方案1】:SELECT * FROM tableName WHERE 'You' = 'Smart'
【讨论】:
我会说 WHERE "Paula Bean" = "Brillant",但这也有效。 这样做不是更好吗:'You' = 'Smart'? 没有必要进行选择,因为您可以在没有它的情况下查询数据库表元信息。 @Thorbjørn Ravn Andersen。这可以返回任何查询的元数据。数据库元信息只能返回显式单个表的元数据。【参考方案2】:...或者您可以只使用 DatabaseMetaData 路由。
有一个“getColumns”方法可以满足您的需要,而无需创建结果集。
【讨论】:
【参考方案3】:SELECT * FROM table_name WHERE 1 = 2;
【讨论】:
【参考方案4】:select * from tablename where 1 != 1
【讨论】:
在某些数据库中,1 指的是第一列。即便如此,这将起作用:甚至 NULL 都不等于 NULL。 和 != 在 DBMS 平台上是相当互斥的,所以我会完全避免不平等。【参考方案5】:不相关,但如果你只需要 MySQL 中的列,你可以运行 SHOW FIELDS FROM tablename。这将返回列和相关信息。
【讨论】:
以上是关于如何进行始终返回零行的选择的主要内容,如果未能解决你的问题,请参考以下文章