Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Agrupe a saída de SHOW COLUMNS em uma lista delimitada por vírgulas


Dê uma olhada na tabela 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. O esquema de informações permite que você faça consultas em metadados. Assim, você pode até comparar campos entre tabelas com uma junção à esquerda, por exemplo.

editar. Oi Cris. Que bom que você resolveu. Como você disse, seu problema era bem diferente porque dizia respeito a servidores diferentes. Eu adiciono um exemplo de dois bancos de dados diferentes no mesmo 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

e o resultado óbvio é dob que está presente na tabela1 e não na tabela2.

Espero que ajude outra pessoa. Cumprimentos rapazes. :)