MySQLのLIKE句を使って「Joh」で始まる複数の値を取得する方法
まず、テーブルを作成します。
mysql> create table DemoTable
(
Name varchar(40)
);
Query OK, 0 rows affected (0.55 sec)次に、INSERTコマンドを使用してテーブルにレコードを挿入します。
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Ethan');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Johnson');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.12 sec)SELECT文を使用して、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable;
実行すると、以下の出力が得られます。
+---------+ | Name | +---------+ | John | | Sam | | Mike | | Ethan | | Johnson | | Bob | +---------+ 6 rows in set (0.00 sec)
以下は、「Joh」で始まる複数の値を取得するためのクエリです。UNIONを使ったサブクエリを組み合わせ、WHERE句でLIKE演算子を適用しています。
mysql> select *from(
select Name as myValue from DemoTable union
select Name from DemoTable
)tbl
where myValue like 'Joh%';実行すると、以下の出力が得られます。
+---------+ | myValue | +---------+ | John | | Johnson | +---------+ 2 rows in set (0.00 sec)
このように、LIKE句と「%」ワイルドカードを組み合わせることで、「Joh」で始まる「John」や「Johnson」など、条件に一致する複数の値を一度に取得できます。UNIONを使用したサブクエリ構造にすることで、重複を排除しながら柔軟な部分一致検索が実現できます。
-
MySQLでランダムな行を取得する方法|ORDER BY RAND()を使った抽出テクニック
MySQLでランダムな行を取得する基本MySQLでランダムに行を取得したい場合、最も手軽な方法は ORDER BY RAND() を使うことです。この記事では、カンマ区切りの値を格納したデータを例に、特定の値を除外しながらランダムに行を抽出する方法をステップごとに解説します。1. サンプルテーブルを作成するまず、IDのリストを保存するためのシンプルなテーブルを作成します。mysql> create table DemoTable1835 ( ListOfIds varchar(20) &
-
MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法
はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実