una - tipos de indices en mysql
Obtenga todas las columnas de todas las tablas MySQL (10)
¿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?
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.
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.
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
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''
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 "<pre>",print_r($d),"</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;
<?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>'';
?>
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()
.
select * from information_schema.columns
where table_schema = ''your_db''
order by table_name,ordinal_position