MySQLのSHOW TABLESで特定のパターンに一致するテーブルだけを表示する方法
SHOW TABLESとLIKE演算子を組み合わせてテーブルを絞り込む
MySQLでは、SHOW TABLES文にLIKE演算子を組み合わせることで、指定したパターンに一致するテーブル名だけを一覧表示できます。LIKE句を使うことで、ワイルドカード(% や _)を活用した柔軟なパターンマッチングが可能になります。
基本構文
SHOW TABLES LIKE 'yourPattern';
実行例
ここでは、データベース「test」に文字「d」を含むテーブルが複数存在するケースを想定します。この場合、パターンとして「d」を含む条件を指定します。
以下のクエリを実行すると、末尾が「d」で始まり、その後に任意の1文字が続くテーブルのみが表示されます。
mysql> show tables like '%d_';
実行結果
+----------------------+ | Tables_in_test (%d_) | +----------------------+ | differenceinseconds | | lasthourrecords | | skiplasttenrecords | +----------------------+ 3 rows in set (0.04 sec)
ワイルドカードの使い方のポイント
- %:任意の長さの文字列にマッチします(0文字以上)。
- _:任意の1文字にマッチします。
上記の例では「%d_」というパターンを使用しているため、「d」の直前にどんな文字列があってもよく、その直後に必ず1文字続くテーブル名だけが抽出されます。
このように、LIKE演算子を使えば大量のテーブルがあるデータベースでも、目的のテーブルを素早く見つけることができます。より高度な検索が必要な場合は、information_schema.tablesを参照する方法もあります。
-
MySQLで特定のカラム名を持つテーブルを検索する方法
MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a
-
MySQLでASC順にレコードのリストのみを表示する方法
MySQLでレコードを特定の順序で表示したい場合、条件を設定した上でORDER BY句を使用する必要があります。このようなケースでは、ORDER BY CASEステートメントが非常に便利です。本記事では、特定のレコードを優先的に並べ替えつつ、残りのレコードを昇順(ASC)で表示する方法を解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable2039 -> ( -> Name varchar(20) -> );Query OK, 0 rows affected (0.62 sec)