sql >> データベース >  >> RDS >> Mysql

SHOWCOLUMNSの出力をコンマ区切りのリストにグループ化します

    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'
    

    編集。情報スキーマを使用すると、メタデータに対してクエリを実行できます。たとえば、左結合を使用してテーブル間のフィールドを比較することもできます。

    編集。こんにちはクリス。解決してよかったです。あなたが言ったように、それは異なるサーバーに関係しているので、あなたの問題はかなり異なっていました。同じサーバー上の2つの異なるデータベースの例を追加します。

    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
    

    明らかな結果は、table2にはなくtable1に存在するdobです。

    それが他の誰かを助けることを願っています。よろしく。 :)



    1. SQLiteの既存のテーブルからCREATETABLEスクリプトを生成する3つの方法

    2. トレースフラグ2389と新しいカーディナリティ推定量

    3. PHPとAJAXを使用した実行中にMySQLクエリを強制終了する

    4. AmazonRDSでのフェイルオーバーとフェイルバック