- Khi chúng ta chèn một hàng mới vào bên trong bảng, nếu chúng ta không xác định đầy đủ giá trị cho tất cả các cột thì những cột bị bỏ trống sẽ nhận giá trị NULL
- Giá trị NULL có thể tạm hiểu là ô không có dữ liệu gì cả [nó không phải là giá trị FALSE, không phải giá trị bằng 0 cũng không phải là chuỗi rỗng]
- Tôi có một cái bảng Student như bên dưới
STTTênGiới tínhTuổiThành phố1Tây Môn Phi TuyếtNam19Cần Thơ2Dương Nhật Tuấn DũngNam19An Giang3Chu Trúc ThanhNữ21Bạc Liêu- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35];
IDTênGiới tínhTuổiThành phố1Tây Môn Phi TuyếtNam19Cần Thơ2Dương Nhật Tuấn DũngNam19An Giang3Chu Trúc ThanhNữ21Bạc Liêu4Đường TạmNULL35NULL⛔ Hai cột Gen & City của sinh viên "Đường Tam Tạng" được nhận giá trị NULL là do tôi không gán giá trị cho họ khi chèn hàng vào bảng
2] Cách truy xuất các hàng có chứa giá trị NULL
- Giá trị NULL không giống với các loại giá trị thông thường, nếu muốn truy xuất những hàng có chứa giá trị NULL thì khi khai báo 'điều kiện' trong mệnh đề WHERE, chúng ta không thể sử dụng dấu bằng toán tử = mà thay
- Tương tự, nếu muốn truy xuất những hàng không chứa giá trị NULL thì chúng ta không thể sử dụng toán tử khác. = which instead of that is must be used toán tử IS NOT NULL
Điều kiện MySQL IS NOT NULL được sử dụng để kiểm tra giá trị NOT NULL trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE
cú pháp
Cú pháp của Điều kiện IS NOT NULL trong MySQL là
expression IS NOT NULL
Tham số hoặc Đối số
biểu thứcGiá trị để kiểm tra xem nó có phải là giá trị NULL khôngGhi chú
- Nếu biểu thức KHÔNG phải là giá trị NULL, điều kiện ước tính là TRUE
- Nếu biểu thức là một giá trị NULL, điều kiện đánh giá là FALSE
Ví dụ - Với câu lệnh SELECT
Dưới đây là một ví dụ về cách sử dụng điều kiện MySQL IS NOT NULL trong câu lệnh SELECT
SELECT * FROM contacts WHERE last_name IS NOT NULL;
Ví dụ MySQL IS NOT NULL này sẽ xóa tất cả các bản ghi khỏi bảng danh bạ nơi last_name không chứa giá trị null
- Khi chúng ta chèn một hàng mới vào bên trong bảng, nếu chúng ta không xác định đầy đủ giá trị cho tất cả các cột thì những cột bị bỏ trống sẽ nhận giá trị NULL
Nội dung chính Hiển thị
- Giá trị NULL có thể tạm hiểu là ô không có dữ liệu gì cả [nó không phải là giá trị FALSE, không phải giá trị bằng 0 cũng không phải là chuỗi rỗng]
- Tôi có một cái bảng Student như bên dưới
IDNameGiới tínhTuổiThành phố1Tây Môn Phi TuyếtNam19Cần Thơ2Dương Nhật Tuấn DũngNam19Cần Thơ3Dương Nhật Tuấn DũngAn Giang21Chu Trúc ThanhNữ INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35]; to add a .
STTTênGiới tínhTuổiThành phố1Tây Môn Phi TuyếtNam19Cần Thơ2Dương Nhật Tuấn DũngNam19Cần Thơ3Dương Nhật Tuấn DũngAn Giang21Chu Trúc Thanh4NữBạc Liêu35Bạc Liêu- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35];
Pathway
NULL = mà thay vào đó phải sử dụng toán tử IS NULL.
⛔ Hai cột Gener & City của sinh viên "Đường Tam Tạng" được nhận giá trị NULL là do tôi không gán giá trị cho họ khi chèn hàng vào bảng. . = which instead of that is must be used toán tử IS NOT NULL.
2] Cách truy xuất các hàng có chứa giá trị NULL
IDNameGiới tínhTuổiThành phố1Tây Môn Phi TuyếtNam19Cần Thơ2Dương Nhật Tuấn DũngNam19Bạc Liêu3Dương Nhật Tuấn DũngAn Giang21Chu Trúc Thanh4NữNam35Bạc Liêu5- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35]; . An Giang23Chu Trúc Thanhnữ
Bạc Liêu * TỪ Học sinh Ở ĐÂU City IS NULL;
- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35];
IDNameGiới tínhTuổiThành phố2Dương Nhật Tuấn DũngNam19Bạc Liêu4NữNam35Bạc Liêu- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35];
Đường Tạm Lãng * TỪ Học sinh Ở ĐÂU City IS NOT NULL;
- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35];
IDNameGenderAgeCity1Tây Môn Phi TuyếtNam19Cần Thơ3Dương Nhật Tuấn DungAn Giang21Chu Trúc Thanh5- Khi tôi sử dụng lệnh INSERT INTO Student [ID, Name, Age] VALUES [4, "Đường Tam Tạng", 35]; . An Giang23Chu Trúc ThanhBạn đã thấy cách SELECT cùng với mệnh đề WHERE trong SQL lấy dữ liệu từ bảng MySQL, nhưng khi chúng tôi cố gắng cung cấp một điều kiện để so sánh giá trị trường hoặc giá trị cột với NULL, thì công việc của nó không chính xác. NULL, it doing work not precision
Để xử lý những vấn đề như vậy, MySQL cung cấp 3 toán tử
LÀ KHÔNG. This code return true if the column value is NULL. This code return true if the column value is NULL
KHÔNG PHẢI LÀ NULL. This toán tử trả về đúng nếu giá trị côt không phải là NULL. This toán tử trả về đúng nếu giá trị côt không phải là NULL
Toán tử này so sánh các giá trị mà [không giống toán tử =] là đúng khi hai giá trị là NULL. Toán tử này so sánh các giá trị mà [không giống toán tử =] là đúng khi hai giá trị là NULL
Điều kiện liên quan tới NULL khá đặc biệt. You can't use = NULL or. = NULL for find NULL value in the column. Những so sánh như thế luôn luôn thất bại bởi vì nó không thể nói rằng có hay không chúng là đúng. Ngay cả NULL = NULl cũng thất bại
Để tìm các cột là hoặc không phải là NULL, sử dụng toán tử IS NULL hoặc IS NOT NULL trong MySQL
Use NULL value in MySQL
Giả sử tạo bảng hocphik59 trong cơ sở dữ liệu sinhvien. Bảng này bao gồm hai cột là mười và hocphi [các bạn lưu ý rằng khi tạo bảng ở trường học phí ta đã không ràng buộc điều kiện NOT NULL và khi chèn dữ liệu mình đã để trống hai trường]. hocphik59 trong cơ sở dữ liệu sinhvien. Bảng này bao gồm hai cột là mười và hocphi [các bạn lưu ý rằng khi tạo bảng ở trường học phí ta đã không ràng buộc điều kiện NOT NULL và khi chèn dữ liệu mình đã để trống hai trường]
//Chon co so du lieu USE sinhvien; //Tao bang hocphik59 CREATE TABLE hocphik59 [ ten VARCHAR[255] NOT NULL, hocphi INT ]; //Chen du lieu vao bang hocphik59 INSERT INTO hocphik59 [ten, hocphi] VALUES ['Nam', 4000000]; INSERT INTO hocphik59 [ten, hocphi] VALUES ['Thanh', NULL]; INSERT INTO hocphik59 [ten, hocphi] VALUES ['Cao', NULL]; INSERT INTO hocphik59 [ten, hocphi] VALUES ['Huong', 3000000];
Quảng cáo
Sau đó, sử dụng lệnh SELECT * FROM hocphik59; . CHỌN * TỪ hocphik59;
SELECT * FROM hocphik59; //ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Nam | 4000000 | | Thanh | NULL | | Cao | NULL | | Huong | 3000000 | +--------+-------------+
Bây giờ, nếu bạn sử dụng = và. = với cột hocphi, bạn sẽ thấy rằng chúng không làm việc với các giá trị NULL, và sẽ không có kết quả được trả về. = and. = với cột hocphi, bạn sẽ thấy rằng chúng không làm việc với các giá trị NULL, và sẽ không có kết quả được trả về
SELECT * FROM hocphik59 WHERE hocphi = NULL; 0 row[s] returned mysql> SELECT * FROM hocphik59 WHERE hocphi != NULL; 0 row[s] returned
Để tìm các bản ghi mà cột hocphi là hoặc không phải là NULL, các truy vấn nên được viết như sau. hocphi là hoặc không phải là NULL, các truy vấn nên được viết như sau
SELECT * FROM hocphik59 WHERE hocphi IS NULL; //Ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Thanh | NULL | | Cao | NULL | +--------+-------------+ SELECT * FROM hocphik59 WHERE hocphi IS NOT NULL; //Ket qua la: +--------+-------------+ | ten | hocphi | +--------+-------------+ | Nam | 4000000 | | Huong | 3000000 | +--------+-------------+
Xử lý giá trị NULL trong PHP Script
Bạn có thể sử dụng điều kiện if…else để chuẩn bị truy vấn dựa trên giá trị NULL. if…else to standard is a query based on NULL value
Quảng cáo
Ví dụ
Ví dụ sau lấy hocphi ra bên ngoài và sau đó so sánh nó với giá trị có sẵn trong bảng. Ở đây mình sử dụng hàm isset[$hocphi] để kiểm tra xem biến hocphi đã có giá trị [khác null] hay chưa, nếu đã được thiết lập thì trả về giá trị Đúng, nếu không là Sai. isset[$hocphi] để kiểm tra xem biến hocphi đã có giá trị [khác null] hay chưa, nếu đã được thiết lập thì trả về giá trị Đúng, nếu không là Sai