Từ hướng dẫn sử dụng
, nó giống như if
hàm chỉ là một dạng kém linh hoạt của case
biểu hiện. Ví dụ, bạn có thể viết:
select if(username = 'darxysaq', 'high', 'low') as awesomeness
Và tương đương với case
:
select case when username = 'darxysaq' then 'high' else 'low' end as awesomeness
Nhưng case
linh hoạt hơn. Nó cho phép nhiều nhánh, như:
select case
when username = 'darxysaq' then 'high'
when username = 'john skeet' then 'medium'
else 'low'
end as awesomeness
Và nó có thể hoạt động giống như một switch
:
select case username
when 'darxysaq' then 'high'
when 'john skeet' then 'medium'
else 'low'
end as awesomeness
Bây giờ if
tuyên bố là một con thú hoàn toàn khác. Đây là một câu lệnh điều khiển trong thủ tục MySQL
. Biểu mẫu tuyên bố có dạng như sau:
CREATE FUNCTION GetAwesomeness (username varchar(50))
RETURNS varchar(20)
BEGIN
IF username = 'darxysaq' THEN
return 'high';
ELSEIF username = 'john skeet' THEN
return 'medium';
ELSE
return 'low';
END IF;
END; //
Đây là SQL Fiddle với phiên bản câu lệnh. Có vẻ như Mr Bean không phải là tất cả những gì anh ấy được tạo ra!
Lưu ý cuối cùng:case
biểu thức là SQL tiêu chuẩn và hoạt động trong hầu hết các cơ sở dữ liệu. if
hàm không phải là SQL chuẩn và sẽ không hoạt động trong các cơ sở dữ liệu khác, như SQL Server hoặc PostgreSQL.