MySQLのSHOW TABLESはテーブル名でソートされる?ORDER BY句で並べ替える方法
MySQLのSHOW TABLESはテーブル名でソートされる?
結論から言うと、MySQLのSHOW TABLESはデフォルトでテーブル名をアルファベット順(昇順)に並べて表示します。ただし、降順にしたい場合や任意の順序で並べ替えたい場合は、INFORMATION_SCHEMA.TABLESからtable_nameを取得し、ORDER BY句を使用することで実現できます。昇順にはASC、降順にはDESCを指定してください。
並べ替えの基本構文
SELECT table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema='yourDatabaseName' ORDER BY table_name DESC;
サンプルデータベース「sample」で確認
ここでは、「sample」というデータベースを使って実際の動作を確認します。まず、通常のSHOW TABLESで全テーブルを表示してみましょう。
mysql> show tables;
実行結果は以下の通りです。
+--------------------------+ | Tables_in_sample | +--------------------------+ | blobsizedemo | | insert_prevent | | insertrecord_selecttable | | insertrecordprevent | | mytable | | newlinedemo | | notequaloperator | | sumofeverydistinct | | yourtable | +--------------------------+ 9 rows in set (0.00 sec)
ご覧の通り、テーブル名が昇順(A→Z)で自動的にソートされて表示されています。
ORDER BY句で降順に並べ替える
次に、ORDER BY句を使ってテーブル名を降順(Z→A)で表示してみます。
mysql> SELECT table_name -> FROM information_schema.tables -> WHERE table_type = 'BASE TABLE' AND table_schema='sample' -> ORDER BY table_name DESC;
実行結果は以下の通りです。
+--------------------------+ | TABLE_NAME | +--------------------------+ | yourtable | | sumofeverydistinct | | notequaloperator | | newlinedemo | | mytable | | insertrecordprevent | | insertrecord_selecttable | | insert_prevent | | blobsizedemo | +--------------------------+ 9 rows in set (0.00 sec)
まとめ
SHOW TABLESは常にテーブル名の昇順で結果を返します。降順や独自の条件で並べ替えたい場合は、information_schema.tablesに対してORDER BY句(ASC/DESC)を組み合わせることで、柔軟に表示順を制御できます。
-
MySQLのテーブル名にアンダースコアは使える?バッククォートでの作成方法を解説
はい、MySQLではテーブル名にアンダースコア(_)を含めることが可能です。ポイントは、テーブル名をバッククォート(`)で囲むことです。特殊文字や記号を含む識別子は、バッククォートで明示的に囲むことで正しく認識されます。基本の構文INSERT INTO `テーブル名` VALUES(値1, 値2, ......N);テーブルの作成まず、アンダースコアを含むテーブル「DemoTable_1」を作成してみましょう。mysql> create table `DemoTable_1` ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Lo
-
MySQLでテーブルから重複のない行をランダムに選択する方法
MySQLでテーブルから行をランダムに選択するには、ORDER BY RAND() と LIMIT を組み合わせて使用します。さらに、重複のない(一意な)行だけを取得したい場合は DISTINCT を併用します。この記事では、実際にテーブルを作成し、データを挿入して、ランダムに一意な行を取得する手順を具体的に解説します。サンプルテーブルの作成まず、例として以下のようなテーブルを作成します。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40)