46 votes

MySql : Afficher les colonnes mais exclure tout sauf les noms des champs

J'aimerais transférer les noms des champs d'une table de MySql vers python, et je sais que

'show columns from project'

fonctionnera. J'ai lu que l'on pouvait ajouter "WHERE ..." pour limiter la recherche à certains champs. Mais je n'ai pas trouvé d'exemple de la manière de renvoyer uniquement les noms des colonnes, sans les informations Type, Key, Null, Extra.

Quels sont les critères de correspondance permettant d'extraire tous les noms de champs pour les colonnes et aucun des autres éléments de description ?

95voto

a_horse_with_no_name Points 100769
SELECT column_name
FROM information_schema.columns
WHERE  table_name = 'your_table'
   AND table_schema = 'database_name'

21voto

Omar Asfour Points 181

Bien que cela semble plus élégant, vous n'avez pas besoin d'awk pour cela. La table information_schema.columns de MySQL contient les informations dont vous avez besoin.

-- DESCRIRE L'ENSEMBLE DE LA TABLE "nom_table" de la base de données "nom_base".

SHOW COLUMNS
FROM database_name.table_name ;

-- SHOW JUST THE COLUMN NAMES for 'table_name' table in the 'database_name' database.

SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'database_name'
AND table_name = 'table_name' ;

3voto

fsnow55 Points 31

Transmettre la réponse à awk :

SHOW columns FROM project; | awk '{ print $1 }'

2voto

Mahbub Points 1931

Vous pouvez interroger la base de données MySQL information_schema directement pour les noms de champs :

select distinct(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME='posts';

1voto

Roger Krueger Points 159

Si votre objectif est d'obtenir une liste délimitée par des virgules (ce qui n'est pas très adapté à Python, mais c'est surtout ce que vous voulez en PHP et Perl), GROUP_CONCAT est votre ami :

SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='your-table-name-here' GROUP BY TABLE_NAME ORDER BY ORDINAL_POSITION

Si vous avez besoin de les citer, vous obtiendrez toutes les citations SAUF celles qui sont les plus éloignées :

SELECT GROUP_CONCAT(column_name SEPARATOR '","') FROM information_schema.columns WHERE table_name='your-table-name-here' GROUP BY TABLE_NAME ORDER BY ORDINAL_POSITION

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X