2011-06-29 1108 views
11

有沒有辦法對mysql的'show tables'命令返回的表進行排序?mysql show tables按表名稱排序

mysql> show tables; 

我想按表名稱按字母順序排序。

編輯:

正如答案之一指出,他們已經按字母順序排列。但是,A!= a。有沒有辦法忽略這種情況?

+0

重複:[PHP MYSQL:一種列出按升序順序表(http://stackoverflow.com/questions/6076886/php-mysql-way-to-list-table-in-ascending-order) – Orbling

回答

24

查詢INFORMATION_SCHEMA和替換database_name你想從

SELECT table_name, engine 
FROM information_schema.tables  
WHERE table_type = 'BASE TABLE' AND table_schema='database_name' 
ORDER BY table_name ASC; 
5

他們已經按字母順序!

0
SELECT CONCAT(`table_name`, '') 
FROM information_schema.tables  
order by 1 asc 

所有你需要返回表的數據庫的名字,只是變換了table_name定期VARCHAR類型。然後像往常一樣排列字符串。

+0

爲什麼我們需要這個?什麼類型是'TABLE_NAME',數字? –

+0

默認情況下,[docs](http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html)不區分大小寫,僅適用於latin1和latin1_swedish_ci排序規則。但是'table_name'是utf8_general_ci \t整理。可能它是一個大小寫敏感的。 – Vagif

0

請嘗試這一個,並相應地替換數據庫名稱。

SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_schema = 'database_name'ORDER BY table_name ASC;