MySQLで2つの列に範囲条件を指定してレコードを選択する方法
MySQLで2つの列に対してそれぞれ範囲条件を設定し、該当するレコードを抽出するには、WHERE句を使用します。本記事では、実際のサンプルを通じて具体的な手順をわかりやすく解説します。
サンプルテーブルの作成
まず、2つの整数型カラムを持つテーブルを作成しましょう。
mysql> create table DemoTable -> ( -> Number1 int, -> Number2 int -> ); Query OK, 0 rows affected (3.73 sec)
レコードの挿入
次に、INSERTコマンドを使ってテーブルにいくつかのレコードを追加します。
mysql> insert into DemoTable values(40,50); Query OK, 1 row affected (0.60 sec) mysql> insert into DemoTable values(100,59); Query OK, 1 row affected (0.56 sec) mysql> insert into DemoTable values(400,500); Query OK, 1 row affected (0.40 sec)
登録済みレコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
出力結果
上記のクエリを実行すると、以下のような結果が得られます。
+---------+---------+ | Number1 | Number2 | +---------+---------+ | 40 | 50 | | 100 | 59 | | 400 | 500 | +---------+---------+ 3 rows in set (0.00 sec)
2つの列に範囲条件を指定したSELECT文
それでは本題です。「Number1列が51以上」かつ「Number2列が1000以下」という範囲条件を両方の列に適用してレコードを抽出するクエリを見てみましょう。
mysql> select *from DemoTable where Number1 >=51 and Number2 <=1000;
出力結果
このクエリを実行すると、条件を満たすレコードのみが出力されます。
+---------+---------+ | Number1 | Number2 | +---------+---------+ | 100 | 59 | | 400 | 500 | +---------+---------+ 2 rows in set (0.00 sec)
このように、WHERE句でAND演算子を組み合わせることで、複数の列にそれぞれ異なる範囲条件を同時に適用できます。今回の例では、最初のレコード(40, 50)はNumber1の値が51未満のため条件から外れ、残りの2件だけが結果として返されています。実務でも数値レンジによる絞り込みは頻繁に使われるテクニックなので、ぜひ覚えておきましょう。
-
MySQLの1つのUPDATE文で2つの列を同時に更新する方法
はじめにMySQLでは、1つのUPDATE文の中でSET句を一度だけ使えば、複数の列を同時に更新できます。各列の指定はカンマ(,)で区切って記述します。この記事では、実際にテーブルを作成し、1つのクエリで2つの列(FirstNameとLastName)を更新する手順を解説します。サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1909 ( Id int NOT NULL, FirstName varchar(20), LastName varchar(20)
-
MySQLでENUM型のステータスから「Active」のレコードを抽出する方法
MySQLでは、ENUM型のカラムに格納された特定の値(例:「Active」)を持つレコードを簡単に抽出できます。この記事では、ENUM型でステータスを管理するテーブルを作成し、「Active」ステータスのレコードだけを取得する具体的な手順を解説します。 1. ENUM型を使ったテーブルの作成 まず、ステータスをENUM型として定義したテーブルを作成します。ENUM型は、あらかじめ指定した文字列のリストの中から1つの値のみを格納できる便利なデータ型です。 mysql> create table DemoTable2037 -> ( &