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

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を参照する方法もあります。

  1. MySQLで特定のカラム名を持つテーブルを検索する方法

    MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a

  2. MySQLでASC順にレコードのリストのみを表示する方法

    MySQLでレコードを特定の順序で表示したい場合、条件を設定した上でORDER BY句を使用する必要があります。このようなケースでは、ORDER BY CASEステートメントが非常に便利です。本記事では、特定のレコードを優先的に並べ替えつつ、残りのレコードを昇順(ASC)で表示する方法を解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable2039 -> ( -> Name varchar(20) -> );Query OK, 0 rows affected (0.62 sec)