Respuestas:
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position
Como no tengo suficiente representante para comentar, aquí hay una pequeña mejora (en mi opinión) sobre la excelente respuesta de nick rulez: reemplazar WHERE table_schema = 'your_db'
con WHERE table_schema = DATABASE()
.
es mejor que use la siguiente consulta para obtener todos los nombres de columna fácilmente
Show columns from tablename
En el caso de que sea útil para cualquier otra persona, esto le dará una lista delimitada por comas de las columnas en cada tabla:
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
Nota: Cuando use tablas con un gran número de columnas y / o con nombres de campo largos, tenga en cuenta el límite group_concat_max_len , que puede hacer que los datos se trunquen.
<?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>';
?>
Similar a la respuesta publicada por @suganya, esto no responde directamente a la pregunta, pero es una alternativa más rápida para una sola tabla:
DESCRIBE column_name;
La pregunta fue:
¿Existe una forma rápida de obtener todos los NOMBRES DE COLUMNA de todas las tablas en MySQL, sin tener que enumerar todas las tablas?
SQL para obtener toda la información para cada columna
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
SQL para obtener todos los NOMBRES DE COLUMNA
select COLUMN_NAME from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
Escribí esta tontería hace mucho tiempo y todavía la uso de vez en cuando:
https://gist.github.com/kphretiq/e2f924416a326895233d
Básicamente, hace un "MOSTRAR TABLAS", luego un "DESCRIBE" en cada mesa, luego lo escupe como rebaja.
Simplemente edita debajo del " nombre if " y listo. Necesitarás tener pymysql instalado.
Piggybacking en la respuesta de Nicola con un php legible
$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>";