是否有一種快速方法從MySQL中的所有表中獲取所有列名,而不必列出所有表?獲取所有MySQL表中的所有列
回答
select * from information_schema.columns
where table_schema = 'your_db'
order by table_name,ordinal_position
這就是我正在尋找的:-)寫了一個Java應用程序,現在做相同的東西 – dieter 2011-04-13 11:57:02
謝謝!爲了得到公正的列名,使用:選擇列名來自INFORMATION_SCHEMA.COLUMNS 其中TABLE_SCHEMA =「your_db」 ORDER BY TABLE_NAME和ORDINAL_POSITION – 2015-06-01 21:49:20
正是我一直在尋找!謝謝。 – 2017-05-17 22:41:43
要列出一個表的所有字段在MySQL:
select *
from information_schema.columns
where table_schema = 'your_DB_name'
and table_name = 'Your_tablename'
<?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>';
?>
任何人在2016年閱讀此內容 - mysql_query已被棄用。最好使用PHP的mysqli前進。 – JCutting8 2016-07-31 02:50:55
SELECT * FROM information_schema.columns
WHERE table_schema = DATABASE()
ORDER BY table_name, ordinal_position
因爲我沒有足夠的代表處發表評論,這裏有一個小的改進(在我看來, )通過尼克rulez的優秀答案:用WHERE table_schema = DATABASE()
代替WHERE table_schema = 'your_db'
。
這很有幫助。當它可以避免的時候,它總是讓我感到困難。謝謝。 – David 2015-08-27 22:01:35
我很久以前寫的這個愚蠢的事情,實際上仍然時不時地使用它:
https://gist.github.com/kphretiq/e2f924416a326895233d
基本上,它在每個表中的「SHOW TABLES」,然後是「描述」,然後將其吐出作爲降價。
只需編輯下面的「如果名稱」並去。你需要安裝pymysql。
上,它是給其他人有用的offchance,這會給你一個逗號分隔的每個表中的列的列表:
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
注:當使用表高的列數和/或使用長字段名稱時,請注意限制,這可能會導致數據被截斷。
我喜歡這一個...因爲我可以很容易地複製所有的列名稱。 – jatazoulja 2018-02-01 01:18:11
最好是您使用以下查詢來獲取所有列名 容易
Show columns from tablename
從命令中得到了類似的結果:DESCRIBE tablename; – dkb 2017-05-02 17:40:25
捎帶上Nicola的答案與一些可讀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>";
類似到answer posted by @suganya這並不直接回應任務離子但對單個表一個更快的選擇:
DESCRIBE column_name;
這將打印一張表格,而不僅僅是表格的列名稱。 – k0pernikus 2017-06-28 15:35:11
的問題是:
有沒有得到從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
- 1. MySQL - 獲取表中的所有數據
- 2. 從表中獲取所有的ID MYSQL
- 3. 獲取網站集中的所有網站而沒有獲取所有列表?
- 4. Mysql:從所有表中獲取結果
- 5. 獲取散列表中的所有值
- 6. 獲取Android中所有Windows的列表
- 7. 獲取所有選中值的列表
- 8. 獲取列表中的所有成員
- 9. 查詢MySQL表格一次以獲取所有類別的所有列表
- 10. MySQL:獲取某個數據庫中的表中的所有列
- 11. 獲取所有表的MySQL模式
- 12. 獲取所有子序列的列表
- 13. 獲取所有表
- 14. jquery從表列中獲取所有值
- 15. mySQL獲取所有列表中的相同值
- 16. php獲取所有子目錄和所有文件的列表
- 17. 從information_schema獲取所有表格,MySQL
- 18. 在MySQL中獲取所有或GROUP BY?所有的
- 19. 獲取所有表的列和類型
- 20. JBPM - 獲取所有任務的列表
- 21. 獲取所有XML屬性的列表
- 22. 獲取所有PostScript字典的列表
- 23. 獲取所有遊樂場的列表
- 24. 獲取所有本地類的列表
- 25. 獲取所有JADE容器的列表
- 26. iptables:獲取所有源IP的列表
- 27. QT - 獲取所有QPushButton的列表
- 28. 獲取所有位置的列表
- 29. 獲取所有型號的列表
- 30. 獲取所有產品的列表
我只需要對數據庫的快速概述。它不會是應用程序中的代碼。 – dieter 2011-04-13 11:36:39