Відповіді:
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
краще використовувати наступний запит, щоб легко отримати всі назви стовпців
Show columns from tablename
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position
Оскільки мені не вистачає респондентів для коментарів, ось незначне поліпшення (на мій погляд) щодо чудової відповіді Ніка Рулеца: заміни WHERE table_schema = 'your_db'
на WHERE table_schema = DATABASE()
.
З огляду на те, що це корисно будь-кому іншому, це надасть вам список колон у кожній таблиці:
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
Примітка. Використовуючи таблиці з великою кількістю стовпців та / або з довгими іменами полів, пам’ятайте про обмеження group_concat_max_len , яке може спричинити скорочення даних.
<?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>';
?>
Подібно до відповіді, опублікованої @suganya, це не відповідає безпосередньо на питання, але є швидшою альтернативою для однієї таблиці:
DESCRIBE column_name;
Питання:
Чи існує швидкий спосіб отримати всі НАЗВИНИ КОЛІН з усіх таблиць в MySQL, не перераховуючи всі таблиці?
SQL, щоб отримати всю інформацію для кожного стовпця
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
SQL, щоб отримати всі ІМЕНІ СТОЛІННЯ
select COLUMN_NAME from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
Я писав цю нерозумну річ давно і досі фактично використовую її час від часу:
https://gist.github.com/kphretiq/e2f924416a326895233d
В основному, це "SHOW TABLES", потім "DESCRIBE" на кожній таблиці, а потім виписує її як розмітку.
Просто відредагуйте нижче "якщо ім'я " та перейдіть. Вам потрібно буде встановити pymysql.
Пігбік на відповідь Ніколи з читаним php
$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>";