MySQL の IF ELSE

Preet Sanghavi 2023年1月3日
MySQL の IF ELSE

このチュートリアルでは、MySQL で IF ELSE ステートメントを使用する方法を探ることを目的としています。

データアナリストの重要な役割の 1つは、データから洞察を収集し、意味のある結果を生成することです。これは、いくつかのデータフィルタリングおよび視覚化技術の助けを借りて行うことができます。

それらの 1つは、IF ELSE ステートメントです。IF ELSE ステートメントは、その名前が示すように、MySQL データベース内の特定のテーブルのデータをフィルタリングするのに役立ちます。

これらのフィルタリング条件は、ステートメントの IF ブロックで設定されます。テーブルに入力されたデータが特定の条件を満たさない場合、ELSE ブロックが実行されます。

たとえば、従業員の詳細を含む従業員テーブルで、給与に基づいて従業員をフィルタリングする場合は、MySQL の IF ELSE 句を使用できます。この方法がどのように機能するかを理解しましょう。

始める前に、数行の 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

MySQL の IF ELSE ステートメント

IF ELSE テクニックの基本的な構文は次のとおりです。

select column_name, 
    (
    CASE 
        WHEN <condition> THEN <operation>
        ELSE 1
    END)
 from table_x;

前述のクエリに見られるように、ELSE 句とともに case ステートメントを使用します。これは、MySQL で IF ELSE ステートメントが実行される方法です。

stu_id3 より大きい場合は、名ではなく学生の名前のみが出力されるようにして、student_details テーブルからデータをフィルタリングしましょう。それ以外の場合、stu_id3 以下の場合は名を出力します。

これは、次のクエリを使用して実現できます。

select stu_id, 
    (
    CASE 
        WHEN stu_id <= 3 THEN stu_firstName
        ELSE stu_lastName
    END) AS filtered_data
 from student_details;

出力:

stu_id	filtered_data
1		Preet
2		Rich
3		Veron
4		Jos
5		Shah
6		Parker
7		Miller
上記のコードでは、読みやすさを向上させるために、MySQL でエイリアス filtered_dataAS キーワードを使用しています。

CASE ELSE 手法の代わりに、ストアドプロシージャがあります。ストアドプロシージャは IF ELSE ブロックを使用して作成できますが、この方法は非常に非効率的であり、case は上記のようなユースケースで最適に機能します。

したがって、case ステートメントを使用すると、他のプログラミング言語の IF ELSE ステートメントに期待される機能を効率的に実装して、MySQL のデータをフィルタリングできます。

著者: 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