MySQL
すべてのテーブルを一覧表示せずに、すべてのテーブルからすべての列名をすばやく取得する方法はありますか?
218834 次
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 に答える