MySQLで複数の列を持つテーブルに条件を作成する方法|IF()関数の使い方を解説
MySQLで条件分岐を実現するIF()関数とは
MySQLで条件に応じて異なる値を返したい場合は、IF()関数を使用します。IF()関数は、指定した条件が真の場合と偽の場合で、それぞれ異なる値を返すことができる便利な関数です。
IF()関数の基本構文
IF(yourCondition, trueStatement, falseStatement);
第1引数に条件式を指定し、条件が真(true)の場合は第2引数の値を、偽(false)の場合は第3引数の値を返します。
サンプルテーブルの作成
まず、デモ用のテーブルを作成しましょう。
mysql> create table DemoTable612 (Number1 int,Number2 int,Score int);
Query OK, 0 rows affected (0.47 sec)
データの挿入
次に、insertコマンドを使用してテーブルにレコードを挿入します。
mysql> insert into DemoTable612 values(10,20,1000);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable612 values(30,40,500);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable612 values(50,70,1200);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable612 values(100,120,400);
Query OK, 1 row affected (0.16 sec)
テーブルの内容を確認する
select文を使用して、テーブル内のすべてのレコードを表示します。
mysql> select *from DemoTable612;
以下のような出力が得られます。
+---------+---------+-------+
| Number1 | Number2 | Score |
+---------+---------+-------+
| 10 | 20 | 1000 |
| 30 | 40 | 500 |
| 50 | 70 | 1200 |
| 100 | 120 | 400 |
+---------+---------+-------+
4 rows in set (0.00 sec)
IF()関数を使った条件クエリの実行
ここで、IF()関数を使用して条件を作成するクエリを見てみましょう。この例では、Score列の値が500より大きい場合はNumber1とNumber2の掛け算の結果を、そうでない場合は足し算の結果を返します。
mysql> select *,If(Score > 500, Number1*Number2,Number1+Number2) AS Result from DemoTable612;
実行すると、以下の出力が得られます。
+---------+---------+-------+--------+
| Number1 | Number2 | Score | Result |
+---------+---------+-------+--------+
| 10 | 20 | 1000 | 200 |
| 30 | 40 | 500 | 70 |
| 50 | 70 | 1200 | 3500 |
| 100 | 120 | 400 | 220 |
+---------+---------+-------+--------+
4 rows in set (0.00 sec)
結果の解説
出力結果を確認すると、Scoreが500より大きい行(10, 20, 1000 と 50, 70, 1200)では掛け算の結果(200 と 3500)が返され、Scoreが500以下の行(30, 40, 500 と 100, 120, 400)では足し算の結果(70 と 220)が返されていることがわかります。
このように、IF()関数を活用すれば、複数の列の値に基づいた柔軟な条件処理をSQLクエリ内で簡単に実装できます。データの集計や表示内容の切り替えなど、さまざまな場面で役立つテクニックなので、ぜひ覚えておきましょう。
-
HTMLでキャプション(表題)付きのテーブルを作成する方法
HTMLでキャプション(表題)付きのテーブルを作成するには、<caption>タグを使用します。キャプションはテーブルの内部に配置され、<table>タグの直後に記述するのが決まりです。 <caption>タグで指定したテキストは、デフォルトではテーブルの上部中央に表示されます。表示位置を変更したい場合は、CSSの「caption-side」プロパティ(top・bottom・left・rightなど)を使って調整することも可能です。 コード例 以下のコードを実行すると、キャプション付きのテーブルがどのように表示されるかを確認できます。 <!DOCTY
-
MySQLでインデックス付きのテーブルを作成する方法を徹底解説
MySQLでは、テーブル作成後にCREATE INDEX文を使うことで、特定のカラムに対してインデックスを追加できます。検索速度の向上やデータ整合性の確保において、インデックスは非常に重要な役割を果たします。この記事では、基本的な構文から実際の実行例まで、順を追ってわかりやすく解説します。インデックス付きテーブルを作成する基本構文まずテーブルを作成し、その後CREATE INDEX文でインデックスを追加します。基本の構文は以下のとおりです。create table yourTableName ( yourColumnName1 dataType, yourColumnName2 dataTyp