2009-06-29 5 views
2

Je veux déterminer si une colonne existe dans une table pour un pilote jdbc. Pour connaître les colonnes d'une table, je dois faire une requête à la table et obtenir le ResultSetMetaData pour l'information, mais c'est assez cher dans 99% des cas.Comment puis-je faire un select qui retourne toujours zéro lignes

Dans mysql je:

SELECT * FROM tablename LIMIT 0,0

En InterSystems CACHÉ J'ai:

SELECT TOP 0 * FROM tablename

Mais, par exemple, dans JavaDB je ne peut appliquer aucune limite du tout.

Existe-t-il une requête générique qui me donnerait le même résultat tout en restant juste avec la performance DB?

Merci d'avance.

Répondre

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

J'aurais dit O WH "Paula Bean" = "Brillant", mais cela fonctionne aussi. – Eric

+0

celui-ci a fait ma journée ... merci – Oso

+0

j'utilise 1 <> !, mais bon, cela fonctionne incroyablement bien. –

7

SELECT * FROM nom_table OERE 1 = 2;

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

Sur certaines bases de données, 1 se réfère à la * première colonne *. Même ainsi, cela fonctionnera: même NULL n'est pas égal à NULL. – Andomar

+1

ne fonctionnera pas sur de nombreuses bases de données. DEVRAIT être 1 <> 1 –

+0

<> et! = Sont assez mutuellement exclusifs sur les plateformes de SGBD, donc j'éviterais complètement l'inégalité. –

3

non apparentés, mais si vous avez juste besoin les colonnes de MySQL, vous pouvez exécuter afficher les champs FROM nom_table. Cela retourne les colonnes et les informations associées.

17

... ou vous pouvez simplement utiliser la route DatabaseMetaData.

Il existe une méthode "getColumns" qui fait ce dont vous avez besoin sans créer de résultats.

Questions connexes