227

MySQLすべてのテーブルを一覧表示せずに、すべてのテーブルからすべての列名をすばやく取得する方法はありますか?

4

11 に答える 11

367
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
于 2011-04-13T11:50:32.523 に答える
53

MySQLのテーブルからすべてのフィールドを一覧表示するには:

select * 
  from information_schema.columns 
 where table_schema = 'your_DB_name' 
   and table_name = 'Your_tablename'
于 2012-11-22T05:49:06.020 に答える
39

次のクエリを使用して、すべての列名を簡単に取得することをお勧めします

Show columns from tablename

于 2016-07-16T12:55:12.773 に答える
6
<?php
        $table = 'orders';
        $query = "SHOW COLUMNS FROM $table";
        if($output = mysql_query($query)):
            $columns = array();
            while($result = mysql_fetch_assoc($output)):
                $columns[] = $result['Field'];
            endwhile;
        endif;
        echo '<pre>';
        print_r($columns);
        echo '</pre>';
?>
于 2013-01-29T10:48:41.167 に答える
5

@suganya が投稿した回答と同様に、これは質問に直接回答するものではありませんが、単一のテーブルのより迅速な代替手段です。

DESCRIBE column_name;
于 2017-01-26T19:10:33.920 に答える
3

私はこのばかげたことをずっと前に書きましたが、今でも実際に時々使用しています。

https://gist.github.com/kphretiq/e2f924416a326895233d

基本的に、各テーブルで「SHOW TABLES」を実行し、次に「DESCRIBE」を実行してから、マークダウンとして吐き出します。

「if name 」の下を編集するだけです。pymysql をインストールする必要があります。

于 2015-11-30T20:32:27.917 に答える
3

いくつかの読み取り可能なphpを使用してNicolaの回答に便乗する

$a = mysqli_query($conn,"select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position");
$b = mysqli_fetch_all($a,MYSQLI_ASSOC);
$d = array();
foreach($b as $c){
    if(!is_array($d[$c['TABLE_NAME']])){
        $d[$c['TABLE_NAME']] = array();
    }
    $d[$c['TABLE_NAME']][] = $c['COLUMN_NAME'];
}
echo "<pre>",print_r($d),"</pre>";
于 2016-10-14T02:14:25.750 に答える