MySQL の IF ステートメント

Preet Sanghavi 2022年2月3日
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 ステートメントを正常に実装できるようになりました。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Statement