Mysql
 sql >> Base de données >  >> RDS >> Mysql

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

Jetez un oeil à la table information_schema.columns

select group_concat(column_name order by ordinal_position)
from information_schema.columns
where table_schema = 'database_name' and table_name = 'table_name'

Éditer. Le schéma d'information vous permet de faire des requêtes sur les métadonnées. Ainsi, vous pouvez même comparer des champs entre des tables avec une jointure à gauche par exemple.

Éditer. Salut chris. Heureux que vous ayez résolu. Comme vous l'avez dit, votre problème était assez différent car il concernait différents serveurs. J'ajoute un exemple de deux bases de données différentes sur le même serveur.

create database db1;
use db1;
create table table1(
id int not null auto_increment primary key,
name varchar(50),
surname varchar(50),
dob date)
engine = myisam;

create database db2;
create table db2.table2 like db1.table1;
alter table db2.table2 drop column dob;

select i1.column_name from (
select column_name
from information_schema.columns 
where table_schema = 'db1' and table_name = 'table1' ) as i1
left join (
select column_name
from information_schema.columns 
where table_schema = 'db2' and table_name = 'table2' ) as i2
on i1.column_name = i2.column_name
where i2.column_name is null

et le résultat évident est dob ​​qui est présent dans table1 et non dans table2.

J'espère que cela aide quelqu'un d'autre. Cordialement les gars. :)