Bản tóm tắt. trong hướng dẫn này, bạn sẽ tìm hiểu về hàm IFNULL của MySQL, đây là một hàm luồng điều khiển rất tiện dụng để xử lý các giá trị NULL
Giới thiệu về hàm IFNULL của MySQL
Hàm IFNULL
của MySQL là một trong các hàm luồng điều khiển của MySQL chấp nhận hai đối số và trả về đối số đầu tiên nếu nó không phải là NULL
. Mặt khác, hàm IFNULL
trả về đối số thứ hai
Hai đối số có thể là giá trị chữ hoặc biểu thức
Sau đây minh họa cú pháp của hàm IFNULL
Code language: SQL [Structured Query Language] [sql]
IFNULL[expression_1,expression_2];
Hàm IFNULL
trả về
3 nếuCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[1,0]; -- returns 1
3 không phải làCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[1,0]; -- returns 1
NULL
; . CácHàm IFNULL
trả về một chuỗi hoặc một số dựa trên ngữ cảnh nơi nó được sử dụng
Nếu bạn muốn trả về một giá trị dựa trên điều kiện
8 hoặcCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[1,0]; -- returns 1
9 khác với điều kiệnCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[1,0]; -- returns 1
NULL
, bạn nên sử dụng hàm IFCác ví dụ về hàm IFNULL của MySQL
Xem các ví dụ về hàm IFNULL
sau đây
Code language: SQL [Structured Query Language] [sql]
SELECT IFNULL[1,0]; -- returns 1
________số 8_______Code language: SQL [Structured Query Language] [sql]
SELECT IFNULL['',1]; -- returns ''
Làm thế nào nó hoạt động
2 trả về 1 vì 1 không phải là
Code language: SQL [Structured Query Language] [sql]SELECT IFNULL['',1]; -- returns ''
NULL
4 trả về
Code language: SQL [Structured Query Language] [sql]SELECT IFNULL['',1]; -- returns ''
5 vì chuỗi
Code language: SQL [Structured Query Language] [sql]SELECT IFNULL['',1]; -- returns ''
5 không phải là
Code language: SQL [Structured Query Language] [sql]SELECT IFNULL['',1]; -- returns ''
NULL
8 trả về chuỗiSELECT IFNULL['',1]; -- returns ''
9 vì đối số đầu tiên là
Code language: SQL [Structured Query Language] [sql]SELECT IFNULL['',1]; -- returns ''
NULL
Hãy lấy một ví dụ thực tế về việc sử dụng hàm IFNULL
Đầu tiên, tạo một bảng mới có tên
2 bằng cách sử dụng câu lệnh sauCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[NULL,'IFNULL function']; -- returns IFNULL function
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS contacts [ contactid INT AUTO_INCREMENT PRIMARY KEY, contactname VARCHAR[20] NOT NULL, bizphone VARCHAR[15], homephone VARCHAR[15] ];
Mỗi liên hệ có một tên, điện thoại doanh nghiệp và điện thoại nhà
Thứ hai, chèn dữ liệu vào bảng
2Code language: SQL [Structured Query Language] [sql]
SELECT IFNULL[NULL,'IFNULL function']; -- returns IFNULL function
Code language: SQL [Structured Query Language] [sql]
INSERT INTO contacts[contactname,bizphone,homephone] VALUES['John Doe','[541] 754-3009',NULL], ['Cindy Smith',NULL,'[541] 754-3110'], ['Sue Greenspan','[541] 754-3010','[541] 754-3011'], ['Lily Bush',NULL,'[541] 754-3111'];
Một số liên hệ chỉ có điện thoại nhà riêng hoặc điện thoại doanh nghiệp. Để lấy tất cả tên liên lạc và điện thoại từ bảng
2, bạn sử dụng truy vấn sauCode language: SQL [Structured Query Language] [sql]
SELECT IFNULL[NULL,'IFNULL function']; -- returns IFNULL function
SELECT contactName, bizphone, homephone FROM contacts;
Code language: SQL [Structured Query Language] [sql]
Sẽ thật tuyệt nếu chúng ta có thể nhận được số điện thoại nhà của người liên hệ nếu số điện thoại cơ quan của người liên hệ không khả dụng. Đây là nơi
Đây là lúc chức năng IFNULL
phát huy tác dụng. Hàm IFNULL
trả về số điện thoại nhà riêng nếu số điện thoại cơ quan là NULL
Thứ ba, sử dụng truy vấn sau để lấy tên và điện thoại của tất cả các địa chỉ liên hệ
Code language: SQL [Structured Query Language] [sql]
SELECT contactname, IFNULL[bizphone, homephone] phone FROM contacts;
Lưu ý rằng bạn nên tránh sử dụng hàm IFNULL
trong mệnh đề WHERE, vì nó làm giảm hiệu suất của truy vấn. Nếu bạn muốn kiểm tra xem một giá trị có
Nếu bạn muốn kiểm tra xem một giá trị có phải là NULL
hay không, bạn có thể sử dụng
0 hoặcCode language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS contacts [ contactid INT AUTO_INCREMENT PRIMARY KEY, contactname VARCHAR[20] NOT NULL, bizphone VARCHAR[15], homephone VARCHAR[15] ];
1 trong mệnh đềCode language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS contacts [ contactid INT AUTO_INCREMENT PRIMARY KEY, contactname VARCHAR[20] NOT NULL, bizphone VARCHAR[15], homephone VARCHAR[15] ];
2Code language: SQL [Structured Query Language] [sql]
CREATE TABLE IF NOT EXISTS contacts [ contactid INT AUTO_INCREMENT PRIMARY KEY, contactname VARCHAR[20] NOT NULL, bizphone VARCHAR[15], homephone VARCHAR[15] ];
Trong hướng dẫn này, chúng tôi đã giới thiệu cho bạn về hàm IFNULL
của MySQL và chỉ cho bạn cách sử dụng hàm IFNULL
trong các truy vấn