2009-06-29 77 views
2

我想確定某個列是否存在於任何jdbc驅動程序的表中。我該如何做一個總是返回零行的選擇

爲了瞭解表中的列,我必須對該表進行查詢,然後獲取信息的ResultSetMetaData,但這在99%的時間內相當昂貴。

在MySQL中我有:

SELECT * FROM tablename LIMIT 0,0

在InterSystems公司的Caché我:

SELECT TOP 0 * FROM tablename

但是,例如,在JavaDB之外,我不能在所有應用任何限制。

是否有任何通用查詢會給我相同的結果,並仍然與數據庫性能公平?

在此先感謝。

回答

22
SELECT * FROM tableName WHERE 'You' = 'Smart' 
7

SELECT * FROM table_name WHERE 1 = 2;

4
select * from tablename where 1 != 1 
+0

在某些數據庫上,1會引用*第一列*。即使如此,這將工作:即使NULL不等於NULL。 – Andomar 2009-06-29 16:35:04

+1

不適用於許多數據庫。應該是1 <> 1 – 2009-06-29 18:36:32

3

無關,但如果您只是需要MySQL中的列,則可以運行SHOW FIELDS FROM tablename。這會返回列和關聯的信息。

17

......或者你可以使用DatabaseMetaData路由。

有一個「getColumns」方法,可以在不創建結果集的情況下執行所需的操作。