Apakah ada cara cepat untuk memasukkan semua nama kolom dari semua tabel MySQL, tanpa harus mendaftar semua tabel?
Apakah ada cara cepat untuk memasukkan semua nama kolom dari semua tabel MySQL, tanpa harus mendaftar semua tabel?
Jawaban:
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
lebih baik Anda menggunakan kueri berikut untuk mendapatkan semua nama kolom dengan mudah
Show columns from tablename
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position
Karena saya tidak punya cukup perwakilan untuk berkomentar, berikut ini sedikit perbaikan (menurut saya) atas jawaban nick rulez yang sangat baik: ganti WHERE table_schema = 'your_db'dengan WHERE table_schema = DATABASE().
Jika itu berguna bagi orang lain, ini akan memberi Anda daftar kolom yang dibatasi koma di setiap tabel:
SELECT table_name,GROUP_CONCAT(column_name ORDER BY ordinal_position)
FROM information_schema.columns
WHERE table_schema = DATABASE()
GROUP BY table_name
ORDER BY table_name
Catatan: Saat menggunakan tabel dengan jumlah kolom yang tinggi dan / atau dengan nama bidang yang panjang, perhatikan batasan group_concat_max_len , yang dapat menyebabkan data terpotong.
<?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>';
?>
Mirip dengan jawaban yang diposting oleh @suganya ini tidak langsung menjawab pertanyaan tetapi merupakan alternatif yang lebih cepat untuk satu tabel:
DESCRIBE column_name;
Pertanyaannya adalah:
Apakah ada cara cepat untuk mendapatkan semua NAMA KOLOM dari semua tabel di MySQL, tanpa harus mendaftar semua tabel?
SQL untuk mendapatkan semua informasi untuk setiap kolom
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
SQL untuk mendapatkan semua NAMA KOLOM
select COLUMN_NAME from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
Saya menulis hal konyol ini sejak lama dan masih menggunakannya sampai sekarang:
https://gist.github.com/kphretiq/e2f924416a326895233d
Pada dasarnya, ia melakukan "SHOW TABLES", lalu "DESCRIBE" pada setiap tabel, lalu meludahkannya sebagai penurunan harga.
Cukup edit di bawah "jika nama " dan pergi. Anda harus menginstal pymysql.
Membonceng jawaban Nicola dengan beberapa php yang bisa dibaca
$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>";