MySQL CASE Statement

MySQL CASE

MySQL has an alternative of IF statement i.e. MySQL CASE statement by which you can check conditional statement.

Besides the IF statement in MySQL, this provides an alternative conditional statement i.e. called CASE. The MySQL CASE statement makes the programming code more readable and efficient.

You can use the simple CASE statement to check the value of an expression against a set of unique values.

Expression of MySQL CASE:

CASE  case_condition
   WHEN exp_1 THEN statement
   WHEN exp_2 THEN statement
   ...
   ELSE statement
END CASE;

The following example shows how to use the simple CASE statement:

DELIMITER $$
CREATE PROCEDURE GetUserType(
 out user_tag varchar(50))
BEGIN
    DECLARE userCountry varchar(50);
    SELECT country INTO userCountry
 	FROM users;
 
	CASE userCountry
	WHEN  'USA' THEN
	SET user_tag = 'US-07';
	WHEN 'UK' THEN
	SET user_tag = 'UK-02';
	ELSE
	SET user_tag = 'NO-95';
	END CASE;
END$$

The simple CASE statement only allows you to match a value of an expression against a set of distinct values.

Read Also: Listing stored procedures in MySQL

In order to perform one or more complex matches such as ranges, you can use the searched CASE statement. The searched CASE statement is equivalent to the IF statement, however, its construct is much more readable.

MySQL checks each condition in the WHEN clause. Until it finds a condition whose value is TRUE, then corresponding commands in the THEN clause will get executed.

Leave a Reply

Your email address will not be published. Required fields are marked *