sql >> Base de Datos >  >> RDS >> Mysql

Agrupe la salida de SHOW COLUMNS en una lista delimitada por comas

Echa un vistazo a la tabla 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'

editar. El esquema de información le permite realizar consultas sobre metadatos. Por lo tanto, incluso puede comparar campos entre tablas con una combinación izquierda, por ejemplo.

editar. Hola Chris. Me alegro de que hayas resuelto. Como dijiste, tu problema era bastante diferente porque se refería a diferentes servidores. Agrego un ejemplo de dos bases de datos diferentes en el mismo servidor.

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

y el resultado obvio es dob que está presente en la tabla 1 y no en la tabla 2.

Espero que ayude a alguien más. Saludos chicos :)