2011-06-29 20 views
11

mysqlの 'show tables'コマンドで返されたテーブルのリストをソートする方法はありますか?mysqlのテーブルをテーブル名で並べ替える

mysql> show tables; 

テーブル名でアルファベット順に並べ替えるとします。

EDIT:答えの一つで指摘したように

、彼らはアルファベット順に既にあります。しかし、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、普通のVARCHAR型にtable_nameを変換します。そして、通常の文字列としてそれを注文します。

5

アルファベット順に表示されています。あなたは

SELECT table_name, engine 
FROM information_schema.tables  
WHERE table_type = 'BASE TABLE' AND table_schema='database_name' 
ORDER BY table_name ASC; 
0
SELECT CONCAT(`table_name`, '') 
FROM information_schema.tables  
order by 1 asc 

あなたが必要とするすべてのテーブルを返すようにしたいデータベースの名前を持つ

+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

これを試して、それに応じてデータベース名を置き換えてください。

TABLE_NAMEのASC BY TABLE_SCHEMA = 'データベース名' ORDER INFORMATION_SCHEMA.TABLES FROM SELECT TABLE_NAME。

関連する問題