Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gruppieren Sie die Ausgabe von SHOW COLUMNS in eine kommaseparierte Liste

Sehen Sie sich die Tabelle information_schema.columns an

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

bearbeiten. Mit dem Informationsschema können Sie Metadaten abfragen. So können Sie zum Beispiel sogar Felder zwischen Tabellen mit einem linken Join vergleichen.

bearbeiten. Hallo Chris. Schön, dass du es gelöst hast. Wie Sie sagten, war Ihr Problem ganz anders, weil es sich um verschiedene Server handelte. Ich füge ein Beispiel für zwei verschiedene Datenbanken auf demselben Server hinzu.

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

und das offensichtliche Ergebnis ist dob, das in Tabelle1 und nicht in Tabelle2 vorhanden ist.

Hoffe, dass es jemand anderem hilft. Grüße Jungs. :)