MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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)を組み合わせることで、柔軟に表示順を制御できます。

  1. MySQLのテーブル名にアンダースコアは使える?バッククォートでの作成方法を解説

    はい、MySQLではテーブル名にアンダースコア(_)を含めることが可能です。ポイントは、テーブル名をバッククォート(`)で囲むことです。特殊文字や記号を含む識別子は、バッククォートで明示的に囲むことで正しく認識されます。基本の構文INSERT INTO `テーブル名` VALUES(値1, 値2, ......N);テーブルの作成まず、アンダースコアを含むテーブル「DemoTable_1」を作成してみましょう。mysql> create table `DemoTable_1` ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Lo

  2. MySQLでテーブルから重複のない行をランダムに選択する方法

    MySQLでテーブルから行をランダムに選択するには、ORDER BY RAND() と LIMIT を組み合わせて使用します。さらに、重複のない(一意な)行だけを取得したい場合は DISTINCT を併用します。この記事では、実際にテーブルを作成し、データを挿入して、ランダムに一意な行を取得する手順を具体的に解説します。サンプルテーブルの作成まず、例として以下のようなテーブルを作成します。mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40)