Obtenga todas las columnas de todas las tablas MySQL

¿Existe una manera rápida de obtener todos los nombres de columna de todas las tablas en MySQL, sin tener que enumerar todas las tablas?

select * from information_schema.columns where table_schema = 'your_db' order by table_name,ordinal_position 

Para enumerar todos los campos de una tabla en MySQL:

 select * from information_schema.columns where table_schema = 'your_DB_name' and table_name = 'Your_tablename' 
 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 mejora menor (en mi opinión) sobre la excelente respuesta de nick rulez: reemplazando WHERE table_schema = 'your_db' con WHERE table_schema = DATABASE() WHERE table_schema = 'your_db' 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 utilice tablas con un alto 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.

 '; print_r($columns); echo '

'; ?>

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; 

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 marca.

Simplemente edite debajo del “si nombre ” y vaya. Necesitarás tener instalado pymysql.

Piggybacking en la respuesta de Nicola con un poco de 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 "
",print_r($d),"

";

La pregunta fue:

¿Existe una forma rápida de obtener todos los NOMBRES DE COLUMNAS 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