2009-06-29 9 views
2

jdbcドライバのテーブルにカラムが存在するかどうかを調べたい。どのようにして常にゼロ行を返すselectを行うか

テーブルの列を知るには、テーブルにクエリを作成してから、その情報のResultSetMetaDataを取得する必要がありますが、これは99%のように非常に高価です。 MySQLでは

は私が持っている:インターシステムズのキャッシュに

SELECT * FROM tablename LIMIT 0,0

は私が持っている:

SELECT TOP 0 * FROM tablename

しかし、例えば、JavaDBに私はまったく制限を適用することはできません。

私には同じ結果をもたらし、それでもDBの性能に関しては公平なものはありますか?

ありがとうございます。

答えて

22
SELECT * FROM tableName WHERE 'You' = 'Smart' 
+2

私は、 "Paula Bean" = "Brillant"と言いましたが、これも機能します。 – Eric

+0

これは私の一日を作った...ありがとう – Oso

+0

私は1つの<>!を使用しますが、ちょっと、これは驚くほどうまく動作します。 –

7

SELECT * FROM table_name WHERE 1 = 2;

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

一部のデータベースでは、1は*最初の列*を参照します。たとえそうであっても、これはうまくいく:NULLでさえNULLに等しくない。 – Andomar

+1

は多くのデータベースでは機能しません。 1 <> 1でなければなりません –

+0

<>と!=はDBMSプラットフォーム間でかなり相互に排他的ですので、私は完全に不等式をとっています。 –

3

無関係ですが、MySQLで列が必要な場合は、tablenameからのSHOW FIELDSを実行できます。列と関連情報が返されます。

17

...または単にDatabaseMetaDataルートを使用することができます。

結果セットを作成せずに必要な作業を行う「getColumns」メソッドがあります。

関連する問題