sql >> Database >  >> RDS >> Mysql

Groepeer de output van SHOW COLUMNS in een door komma's gescheiden lijst

Bekijk de tabel 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'

Bewerk. Met het informatieschema kunt u query's uitvoeren op metadata. U kunt dus zelfs velden tussen tabellen vergelijken met bijvoorbeeld een left join.

Bewerk. Hallo chris. Fijn dat je het hebt opgelost. Zoals je al zei, was je probleem heel anders omdat het te maken had met verschillende servers. Ik voeg een voorbeeld toe van twee verschillende databases op dezelfde server.

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

en het voor de hand liggende resultaat is dob die aanwezig is in tabel1 en niet in tabel2.

Hoop dat het iemand anders helpt. Groetjes jongens. :)



  1. MySQL Innodb-crash

  2. Entity Framework en meerdere schema's

  3. INSERT ... OP DUPLICATE KEY (niets doen)

  4. Retourneren van resultaat, zelfs voor elementen in de IN-lijst die niet in de tabel voorkomen