답변:
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
의견을 말할 충분한 담당자가 없기 때문에 여기에 nick rulez의 훌륭한 답변에 대한 약간의 개선 사항 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>';
?>
문제는 :
모든 테이블을 나열하지 않고 MySQL의 모든 테이블에서 모든 COLUMN NAMES를 가져 오는 빠른 방법이 있습니까?
각 열에 대한 모든 정보를 얻는 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"를 수행 한 다음 마크 다운으로 뱉어냅니다.
"if name " 아래에서 편집 하여 이동하십시오. pymysql이 설치되어 있어야합니다.
읽을 수있는 PHP로 Nicola의 답변에 대한 피기 백
$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>";