MySQL の IF ステートメント
このチュートリアルでは、MySQL で IF
ステートメントを使用する方法を学習することを目的としています。
MySQL の IF
ステートメントの構文は、SELECT IF(condition, result_when_true, result_when_false) AS [col_name]
として指定できます。
特に、IF
ステートメントの場合、条件は、評価する必要があるプログラマーによって定義された基準です。
検討のために 1つまたは複数の列を含めることができます。たとえば、列の特定の値が 200 より大きいかどうかを確認するには、name_of_column> 100 の場合に条件を記述できます。
result_when_true
値は、条件が true であると評価された場合に、条件に対して表示される出力値を表します。一方、result_when_false
値は、条件が false と計算されたときに表示される出力値を表します。
例を挙げて、このステートメントについてさらに学習してみましょう。
ただし、開始する前に、操作するダミーデータセットを作成します。ここでは、テーブル student_details
とその中のいくつかの行を作成します。
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
上記のクエリは、学生の名と姓の行を含むテーブルを作成します。データのエントリを表示するには、次のコードを使用します。
SELECT * FROM student_details;
前述のコードは、次の出力を提供します。
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
ここで、stu_id
が 3 より大きい場合は、生徒の名とともに Yes
を出力することを目指しましょう。それ以外の場合は、high_stu_id
という名前の別の列に No
を出力します。
MySQL の IF
ステートメント
上記の構文に見られるように、MySQL の IF
ステートメントには条件が必要です。これは、CASE
ステートメントと同様に機能します。
次のプログラムを利用して、MySQL で目的の結果を得ることができます。
SELECT stu_firstName, IF(stu_id>3,"yes","no") AS high_stu_id
FROM student_details;
前述のコードは、各学生の名と high_stu_id
という名前の新しい列を取得します。
学生の stu_id
が 3 より大きい場合、この結果列の値は Yes
になります。それ以外の場合、stu_id
が 3 より小さい場合、値 No
が出力されます。
上記のコードの出力は、次のように視覚化できます。
stu_firstName high_stu_id
Preet no
Rich no
Veron no
Geo yes
Hash yes
Sachin yes
David yes
同様に、IF
ステートメントを使用してデータを活用し、要件を満たすことができます。IF
ステートメントの代わりに、MySQL の CASE
ステートメントがあります。
したがって、このチュートリアルの助けを借りて、MySQL で IF
ステートメントを正常に実装できるようになりました。