Mysql Comment sélectionner uniquement à partir d'une colonne si celle-ci existe
J'ai besoin d'être en mesure de vérifier si il existe une colonne et si c'est le cas alors je veux SÉLECTIONNER.
Je suis en train d'essayer beaucoup de variations différentes, mais je ne suis même pas sûr si cela est possible.
Voici ma dernière tentative:
SELECT
IF (EXISTS (SELECT `Period` AS `Period` FROM myview), `PERIOD`,
IF (EXISTS (SELECT `Country` AS `COUNTRY` FROM myview),`COUNTRY` FROM myview ;
Des idées?
MODIFIER
J'avais vu l'autre question sur ici: MySQL, Vérifiez s'il existe une colonne dans une table SQL
Mais j'ai encore du mal avec l'instruction if. Je peux vérifier pour voir si la colonne n'existe à l'aide de la réponse à la question ci-dessus. Mais ma question est, comment faire pour exécuter une instruction select à partir de cette colonne si le résultat est trouvé pour être vrai.
EDIT 2
La réponse ci-dessous indique que je devrais profiter de la FIN et de début de déclaration et de ce fait sens. Cependant, ma requête se plaint à la première ligne. Il est dit "inattendu SI' - quelqu'un peut-il confirmer si c'est la bonne syntaxe bof MYSQL?
if( exists (SELECT *
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'db_name'
AND TABLE_NAME = 'view_name'
AND COLUMN_NAME = 'column_name') )
begin
SELECT `column_name` FROM `view_name`
end
Merci d'avance.
prepare
déclaration.double possible de MySQL, Vérifiez s'il existe une colonne dans une table avec SQL
Ce genre de problème est parfois révélatrice d'une mauvaise conception
Comment avez-vous été dans une situation où vous ne savez pas si il existe une colonne?
Le problème se pose parce que j'ai besoin de tirer rapports standardisés à partir de plusieurs sources différentes sans un schéma commun ou des relations. Je peux à la main le code de chaque requête, mais il y a tellement de points de vue d'être tiré depuis qu'il est devenu extrêmement difficile.
OriginalL'auteur Linda Keating | 2014-06-12
Vous devez vous connecter pour publier un commentaire.
Cette requête va vous donner si il existe une colonne.
Si vous voulez vérifier si certaines colonnes existent puis exécutez une instruction select, vous devez d'abord vérifier vos colonnes existent. Effectuez ensuite les sélectionner:
Si la SI la condition est vraie, alors vous devrez exécuter quoi que ce soit à l'intérieur du début et de FIN.
Hmm. Juste essayé ce. Mais mysql se plaint du SI 'syntax error, unexpected SI'
Cette seule chose précise à propos de cette réponse est la référence à la information_schema.les colonnes de la table. Le reste est de l'envoi de l'OP en bas d'un chemin qui a peu de chance de réellement fournir une solution viable.
Vos critiques sont peut-être exacts, mais sans explication, il n'est pas utile.
Cette réponse ne sélectionner les deux colonnes ou aucun des colonnes... Est-il pas moyen de sélectionner uniquement celles qui existent?
OriginalL'auteur James McDonnell
Je suis tombé sur la même situation où j'ai eu quelques tables de produits créés par des fiches téléchargées par les utilisateurs. Parfois, les feuilles n'ont pas de colonne nommée "obsolète", j'ai donc dû à l'importation de tous les produits de la feuille mais pas le obsolètes.
Je ne suis pas modifier ma requête basée sur l'original de la question qui a été posée, mais, voici ma solution:
Il y a 2 parties les plus importantes dans cette requête:
obsolete
en tant que mannequin pour tromper MySql qui sera utilisé même si la colonne n'existe pas lors de la sélection de la fonction COUNT(*).OriginalL'auteur Rehmat