Nullif mysql

Trong MySQL,

NULL
3 là một hàm điều khiển luồng trả về
NULL
4 nếu cả hai đối số của nó đều tương đương. Nếu không, nó trả về đối số đầu tiên

cú pháp

Cú pháp diễn ra như thế này

NULLIF(expr1,expr2)

Thí dụ

Đây là một ví dụ để chứng minh

SELECT NULLIF( 7, 7 );

Kết quả

NULL

Trong trường hợp này, cả hai đối số đều giống hệt nhau và do đó kết quả là

NULL
4

Khi các đối số không tương đương

Đây là những gì xảy ra khi các đối số không tương đương

SELECT NULLIF( 7, 8 );

Kết quả

7

Các đối số khác nhau và vì vậy đối số đầu tiên được trả về

Dây

Đây là một ví dụ so sánh các chuỗi

________số 8_______

Kết quả

Same	Different
----    ---------
NULL	Bean

ngày

Đây là một ví dụ so sánh ngày tháng

SELECT 
    NULLIF( DATE '2030-12-20', DATE '2030-12-20' ) AS "Same",
    NULLIF( DATE '2030-12-20', DATE '2035-08-15' ) AS "Different";

Kết quả

Same	Different
----    ----------
NULL	2030-12-20

Biểu thức

NULL
3 đánh giá giá trị hiện tại của các biểu thức. Do đó, nếu chúng ta chuyển một biểu thức như thế này

SELECT NULLIF( 8, 2 * 4 );

Chúng tôi nhận được điều này

NULL

2 nhân với 4 là 8, và do đó hai đối số bằng nhau

Đây là những gì sẽ xảy ra nếu chúng ta thay đổi đối số thứ hai

SELECT NULLIF( 7, 7 );
1

Kết quả

SELECT NULLIF( 7, 7 );
2

Đối số đầu tiên được trả về

Một ví dụ cơ sở dữ liệu

Giả sử chúng ta chạy truy vấn sau

SELECT NULLIF( 7, 7 );
3

Kết quả

SELECT NULLIF( 7, 7 );
4

Ở đây, chúng tôi có tên quốc gia ở cột bên trái và tên địa phương của quốc gia tương ứng ở bên phải

Hãy thêm

NULL
3 vào cột thứ ba của truy vấn của chúng ta

SELECT NULLIF( 7, 7 );
5

Kết quả

SELECT NULLIF( 7, 7 );
6

Chúng ta có thể thấy rằng cột thứ ba chỉ trả về tên địa phương nếu nó khác với giá trị trong cột

NULL
8. Nếu giống nhau, thì trả về
NULL
4

Chúng tôi cũng có thể sử dụng

NULL
3 để lọc kết quả truy vấn của mình

SELECT NULLIF( 7, 7 );
7

Kết quả

SELECT NULLIF( 7, 7 );
8

Trong trường hợp này, chúng tôi chỉ trả về những hàng có tên địa phương khác với cột

NULL
8

Hàm NULLIF của MySQL rất hữu ích khi kiểm tra xem hai giá trị có bằng nhau hay không và nhận lại một giá trị. Nó được phân loại là Chức năng điều khiển luồng

Chức năng điều khiển luồng có nghĩa là bạn có thể kiểm soát luồng của chương trình dựa trên giá trị trả về được cung cấp bởi một hàm. Hàm NULLIF() rất đơn giản để thực thi và có thể là một yếu tố ra quyết định quan trọng cho chương trình MySQL của chúng ta

Cú pháp MySQL NULLIF

Nullif mysql
Cú pháp NULLIF

Như chúng ta có thể thấy ở trên, Hàm MySQL NULLIF() yêu cầu 2 đối số. Cần có cả hai đối số để hàm hoạt động. Ngay cả khi thiếu một tham số, nó sẽ báo lỗi. Khi Hàm NULLIF() được điền bằng hai biểu thức bằng nhau, nó sẽ trả về

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3, ngược lại nếu cả hai biểu thức không bằng nhau thì nó sẽ trả về biểu thức đầu tiên làm đầu ra

Làm cách nào để sử dụng MySQL NULLIF()?

Bây giờ hãy xem xét một số ví dụ để hiểu rõ hơn về chức năng này

1. So sánh các giá trị số bằng MySQL NULLIF()

Nullif mysql
Biểu thức – Số bằng nhau

SELECT NULLIF(3, 3);

Code language: SQL (Structured Query Language) (sql)

Trong ví dụ trên, chúng ta có hai số i. e. (3, 3) làm đối số của chúng tôi. Cả hai số đều bằng nhau, do đó, nó mang lại cho chúng tôi đầu ra là

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3

Bây giờ hãy xem điều gì xảy ra khi các số không bằng nhau

Nullif mysql
Biểu thức – Numbers NotEqual

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)

Đối số của chúng tôi ở trên là

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
5 trong đó

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
6 lớn hơn

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
7 nó không bằng với

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
7, do đó, nó cho chúng tôi biểu thức đầu tiên là kết quả là

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
6

Nullif mysql
Biểu thức – Số nguyên FloatingPoint

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)

Ngay cả khi số đó là số có dấu phẩy động tương đương với số nguyên mà chúng ta sử dụng, Hàm

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
0 trả về

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3

2. So sánh một chuỗi và một số sử dụng NULLIF()

Bây giờ chúng ta sẽ xem đầu ra là gì khi một đối số là một chuỗi và một đối số khác là một số

Nullif mysql
Biểu thức – Chuỗi số bằng nhau

SELECT NULLIF("2", 2);

Code language: SQL (Structured Query Language) (sql)

Trong MySQL khi chúng tôi đánh giá một số là một chuỗi có số, nó được chuyển đổi hoàn toàn thành một số. Điều tương tự cũng xảy ra ở trên và chúng tôi nhận được

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3 làm đầu ra

3. So sánh chuỗi sử dụng NULLIF()

Nullif mysql
Biểu thức - Chuỗi là số

SELECT NULLIF("2", "8");

Code language: SQL (Structured Query Language) (sql)

Ví dụ trên tương tự như ví dụ chúng ta đã thấy trước đó. Ở đây, cả hai biểu thức đều là các số được biểu thị dưới dạng chuỗi và

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
6 lớn hơn 2, do đó chúng tôi nhận được biểu thức đầu tiên làm đầu ra của mình

Nullif mysql
Biểu thức – Chuỗi

SELECT NULLIF("MySQLCode", "mysqlcode");

Code language: SQL (Structured Query Language) (sql)

Ở đây chúng tôi có hai chuỗi được phân biệt theo trường hợp. Kết quả là

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3 vì trường hợp này bị bỏ qua ở đây

4. So sánh các giá trị Boolean bằng cách sử dụng NULLIF()

Bây giờ chúng ta hãy so sánh các giá trị boolean bằng Hàm NULIF()

Nullif mysql
Biểu thức – Đúng Sai

SELECT NULLIF(True, False);

Code language: SQL (Structured Query Language) (sql)

Đối số của chúng tôi là (True, False), đây là các giá trị boolean trong đó

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
5 tương ứng với

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
6 và

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
7 tương ứng với

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
8. Các giá trị này không bằng nhau và chúng tôi nhận biểu thức đầu tiên làm đầu ra

Nullif mysql
Biểu thức – Sai Đúng

SELECT NULLIF(False, True);

Code language: SQL (Structured Query Language) (sql)

Bây giờ nếu chúng ta hoán đổi biểu thức từ (True, False) thành (False, True), chúng ta sẽ nhận được kết quả là

SELECT NULLIF(3.0, 3);

Code language: SQL (Structured Query Language) (sql)
8, đây là biểu thức đầu tiên vì các biểu thức không bằng nhau

5. Sử dụng MySQL NULLIF() với một bảng

Bây giờ chúng ta sẽ tạo một bảng mà từ đó sự hiểu biết của chúng ta về hàm có thể trở nên sắc nét và rõ ràng

Nullif mysql
Tạo bảng TênTuổi

CREATE TABLE NameAge(Name VARCHAR(20), Age INT);

Nullif mysql
Chèn hàng dữ liệu 1

INSERT INTO NameAge(Name, Age) VALUES('JohnDoe', 25);

Code language: SQL (Structured Query Language) (sql)

Nullif mysql
Chèn hàng dữ liệu 2

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
0

Nullif mysql
Chèn hàng dữ liệu 3

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
1

Khi bảng được tạo, chúng ta sẽ chạy Hàm NULLIF() để trả về

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
3 trong đó Tuổi bằng 28

Nullif mysql
Chạy NULLIF() trên Bảng NameAge

SELECT NULLIF(8, 2);

Code language: SQL (Structured Query Language) (sql)
2

Truy vấn trên cho thấy rõ ràng rằng Hàm NULLIF() có thể rất quan trọng để nhanh chóng tìm thấy nhiều thứ từ dữ liệu

Phần kết luận

Hàm MySQL NULLIF() rất đơn giản và có thể rất quan trọng khi cố gắng thu thập thông tin chi tiết từ tập dữ liệu. Bạn cũng có thể đọc về các Hàm điều khiển luồng khác như IF() và IFNULL()

Nullif trong MySQL là gì?

Định nghĩa và cách sử dụng . Mặt khác, biểu thức đầu tiên được trả về

Nullif trong SQL là gì?

NULLIF là tương đương với biểu thức CASE đã tìm kiếm trong đó hai biểu thức bằng nhau và biểu thức kết quả là NULL .

Làm cách nào để thay thế NULL bằng 0 trong MySQL?

CẬP NHẬT [bảng] SET [column]=0 WHERE [column] IS NULL ; . Trong ví dụ trên, nó thay thế chúng bằng 0.

Làm cách nào để thay thế chuỗi rỗng bằng NULL trong MySQL?

Bạn cần sử dụng hàm NULLIF() từ MySQL . Cú pháp như sau. CHỌN NULLIF(yourCoumnName,' ') làm anyVariableName từ yourTableName; .