Hướng dẫn mysql else if - mysql khác nếu

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm IF trong MySQL thông qua cú pháp và ví dụ thực tế.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.

1. Mô tả

Hàm IF trả về một giá trị nếu một điều kiện đúng hoặc giá trị khác nếu điều kiện sai.

2. Cú pháp

Cú pháp của hàm IF trong MySQL là:

IF[ condition, [value_if_true], [value_if_false] ]

Trong đó:

Bài viết này được đăng tại [free tuts .net]

  • mysql> SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 SELECT IF[1 là admin
  • Luồng đi như sau:=> là member
  • Nếu
    IF if_expression THEN 
    	commands
       ELSEIF elseif_expression THEN 
    	commands
       ELSE 
    	commands
    END IF;
    5 đúng thì nó sẽ thực thi câu lệnh bên dưới nó, ngược lại nó bỏ qua và nhảy xuống IFELSE
    => đăng nhập sai

Nó kiểm tra mệnh đề

IF if_expression THEN 
	commands
   ELSEIF elseif_expression THEN 
	commands
   ELSE 
	commands
END IF;
6, nếu mệnh đề này đúng thì nó xử lệnh bên dưới, ngươc lại thì nó bỏ qua và nhảy tiếp xuống dưới.:

  • Ở dưới nó nhận thấy chỉ còn có
    IF if_expression THEN 
    	commands
       ELSEIF elseif_expression THEN 
    	commands
       ELSE 
    	commands
    END IF;
    7 nên thực thi luôn chứ không cần kiểm tra điều kiện nữa.
  • Lưu ý với bạn là ta có thể có nhiều IFELSE chứ không phải chỉ 1 cái như trong ví dụ trên.

2. Ví dụ mềnh đề if else trong MySql Stored Procedure:

DELIMITER $$

DROP PROCEDURE IF EXISTS `checkLogin`$$

CREATE PROCEDURE `checkLogin`[
    IN input_username VARCHAR[255],
    IN input_password VARCHAR[255],
    OUT result VARCHAR[255]
]
BEGIN
	/*Bien flag luu tru level. Mac dinh la -1*/
	DECLARE flag INT[11] DEFAULT -1;
	
	/*Thuc hien truy van gan level vao bien flag*/
	SELECT us_level INTO flag FROM members
	WHERE us_username = input_username AND us_password = MD5[input_password];

	/*Sau khi thuc hien lenh select nay ma ko co du lieu thi
	  luc nay flag se khong thay doi. Chinh vi the neu flag = -1 tuc la sai thong tin
	*/
	IF [flag  tài khoản bị khóa

Nếu

CREATE TABLE IF NOT EXISTS `members` [
  `us_id` INT[11] NOT NULL AUTO_INCREMENT,
  `us_username` VARCHAR[30] COLLATE utf8_unicode_ci DEFAULT NULL,
  `us_password` VARCHAR[32] COLLATE utf8_unicode_ci DEFAULT NULL,
  `us_level` TINYINT[1] DEFAULT '0',
  PRIMARY KEY [`us_id`]
] ENGINE=INNODB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

--
-- Contenu de la table `members`
--

INSERT INTO `members` [`us_id`, `us_username`, `us_password`, `us_level`] VALUES
[1, 'admin', '57e34a1be668ebd6e40d430806beb099', 1],
[2, 'member', '57e34a1be668ebd6e40d430806beb099', 2],
[3, 'banded', '57e34a1be668ebd6e40d430806beb099', 0];
0 => adminStored Procedure chứ ít khi được sử dụng trong câu lệnh
DELIMITER $$

DROP PROCEDURE IF EXISTS `checkLogin`$$

CREATE PROCEDURE `checkLogin`[
    IN input_username VARCHAR[255],
    IN input_password VARCHAR[255],
    OUT result VARCHAR[255]
]
BEGIN
	/*Bien flag luu tru level. Mac dinh la -1*/
	DECLARE flag INT[11] DEFAULT -1;
	
	/*Thuc hien truy van gan level vao bien flag*/
	SELECT us_level INTO flag FROM members
	WHERE us_username = input_username AND us_password = MD5[input_password];

	/*Sau khi thuc hien lenh select nay ma ko co du lieu thi
	  luc nay flag se khong thay doi. Chinh vi the neu flag = -1 tuc la sai thong tin
	*/
	IF [flag 

Bài Viết Liên Quan

Chủ Đề