Grouper la sortie de SHOW COLUMNS dans une liste délimitée par des virgules

Je suis en comparant les tables de base de données sur un serveur de développement, à l'encontre d'un serveur en direct, à la recherche pour le nom de la colonne des changements, de nouvelles colonnes, et qui ont été abandonnés. J'aimerais faire quelque chose comme ceci:

SELECT GROUP_CONCAT(Field) FROM (SHOW COLUMNS ON table_name) GROUP BY Field

Ce que je suis après est une liste séparée par des virgules, que je peux ensuite prendre au serveur et à faire:

SHOW COLUMNS FROM table_name WHERE NOT IN ([comma-delimited list from above query])

Des idées sur la meilleure façon de le faire - que ce soit par la correction de moi dans ma propre approche, ou par un autre moyen, tous ensemble? Évidemment, le SQL ci-dessus ne fonctionne pas.

Une remarque: Les serveurs sont complètement séparés et ne peuvent communiquer les uns avec les autres, donc pas de comparaison directe est possible.


MODIFIER

Merci pour les réponses, les gars! L'application de vos réponses à la question, c'est ma dernière SQL pour obtenir les noms des colonnes:

SELECT CONCAT("'", GROUP_CONCAT(column_name ORDER BY ordinal_position SEPARATOR "', '"), "'") AS columns
FROM information_schema.columns
WHERE table_schema = 'db_name' AND table_name = 'tbl_name'

Qui me donne une liste qui ressemble à ceci:

'id', 'name', 'field1', 'field2'

Alors je peux utiliser cette requête pour comparer:

SELECT GROUP_CONCAT(column_name ORDER BY ordinal_position)
FROM information_schema.columns
WHERE table_schema = 'db_name' AND table_name = 'tbl_name' AND column_name NOT IN ('id', 'name', 'field1', 'field2')

Les résultats sont d'une liste de toutes les colonnes qui existent dans la première base de données et non dans la seconde. Parfait!

source d'informationauteur Chris Baker