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

MySQLで2つの列の値の範囲内から特定の値を選択する方法

MySQLで2つの列の値の範囲内から特定の値を選択する方法

この記事では、MySQLのBETWEEN演算子を使用して、2つの列(Score1とScore2)の値の範囲内に含まれる特定の値に一致する行を選択する方法を解説します。テーブルの作成からデータの挿入、クエリの実行まで、具体的な手順を見ていきましょう。

1. テーブルを作成する

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable787 (
Score1 int,
Score2 int,
Name varchar(100)
);
Query OK, 0 rows affected (0.84 sec)

2. レコードを挿入する

insertコマンドを使用して、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable787 values(34,56,'Chris');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable787 values(73,86,'Robert');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable787 values(90,99,'David');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable787 values(80,89,'Adam');
Query OK, 1 row affected (0.21 sec)

3. すべてのレコードを表示する

select文を使用して、テーブル内のすべてのレコードを確認します。

mysql> select *from DemoTable787;

これにより、次のような出力が得られます。

+--------+--------+--------+
| Score1 | Score2 | Name |
+--------+--------+--------+
| 34 | 56 | Chris |
| 73 | 86 | Robert |
| 90 | 99 | David |
| 80 | 89 | Adam |
+--------+--------+--------+
4 rows in set (0.00 sec)

4. 2つの列の値の範囲から特定の値を選択するクエリ

2つの列の値の間に特定の値が含まれる行を抽出するには、BETWEEN演算子を使用します。以下は、「56」がScore1とScore2の間に存在する行のNameを取得するクエリです。

mysql> select Name from DemoTable787 where 56 between Score1 and Score2;

これにより、次のような出力が得られます。

+-------+
| Name |
+-------+
| Chris |
+-------+
1 row in set (0.00 sec)

ポイント解説

上記の結果からわかるように、Chrisのレコード(Score1 = 34、Score2 = 56)のみが条件に一致しました。BETWEEN演算子は「以上〜以下」の範囲指定を行うため、境界値そのものも一致の対象に含まれます。この手法を使えば、価格帯やスコア範囲など、2つの列で定義された範囲に特定の値が収まるデータを簡単に検索できます。

  1. MySQLで最初の3件のレコードに特定の値を設定する方法

    MySQLで、テーブルの最初の3件のレコードだけに特定の値を設定したい場合は、UPDATE文と組み合わせて LIMIT 3 を使用します。MySQLのUPDATE文は ORDER BY 句と LIMIT 句をサポートしているため、更新対象の行数を簡単に制御できます。ここでは、実際の手順をサンプルコードとともに解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable1968     (     Id int NOT NULL AUTO_I

  2. MySQLで値が「0」の場合に別の列から値を取得する方法

    MySQLで値が「0」の場合に別の列から値を取得する方法MySQLでは、IF()関数を使用することで、特定の列の値が「0」だった場合に、別の列の値を代わりに取得できます。条件分岐を1つのクエリ内で簡単に実現できる便利な関数です。IF()関数の基本構文select IF(yourColumnName1=0,yourColumnName2,yourColumnName1) as anyAliasName from yourTableName;この構文では、最初の列の値が「0」であれば2番目の列の値を返し、「0」以外であれば最初の列の値をそのまま返します。サンプルテーブルの作成まず、動作確認用のテー