MySQL có coi chuỗi rỗng là NULL không?

Tóm lược. trong hướng dẫn này, bạn sẽ học cách làm việc với các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 của MySQL. Ngoài ra, bạn sẽ tìm hiểu một số hàm hữu ích để xử lý các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 một cách hiệu quả

Giới thiệu về MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 giá trị

Trong MySQL, giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 có nghĩa là không xác định. Một giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 khác 0 (

INSERT INTO leads(first_name,last_name,source,phone) VALUES ('Lily','Bush','Cold Calling','(408)-555-1234'), ('David','William','Web Search','(408)-888-6789');

Code language: SQL (Structured Query Language) (sql)
0) hoặc một chuỗi rỗng

INSERT INTO leads(first_name,last_name,source,phone) VALUES ('Lily','Bush','Cold Calling','(408)-555-1234'), ('David','William','Web Search','(408)-888-6789');

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

Một giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 không bằng bất cứ thứ gì, kể cả chính nó. Nếu bạn so sánh một giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 với một giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 khác hoặc bất kỳ giá trị nào khác, kết quả sẽ là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 vì giá trị của từng giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 không xác định

Nói chung, bạn sử dụng giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 để chỉ ra rằng dữ liệu bị thiếu, không xác định hoặc không áp dụng được. Ví dụ: số điện thoại của một khách hàng tiềm năng có thể là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 và có thể được thêm vào sau

Khi bạn tạo một bảng, bạn có thể chỉ định xem một cột có chấp nhận các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 hay không bằng cách sử dụng ràng buộc

UPDATE leads SET phone = NULL WHERE id = 3;

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

Ví dụ, câu lệnh sau tạo bảng

UPDATE leads SET phone = NULL WHERE id = 3;

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

DROP TABLE IF EXISTS leads; CREATE TABLE leads ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, source VARCHAR(255) NOT NULL, email VARCHAR(100), phone VARCHAR(25) );

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

Trong bảng

UPDATE leads SET phone = NULL WHERE id = 3;

Code language: SQL (Structured Query Language) (sql)
1 này, cột

UPDATE leads SET phone = NULL WHERE id = 3;

Code language: SQL (Structured Query Language) (sql)
3 là cột khóa chính, do đó, nó không chấp nhận bất kỳ giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 nào

Các cột

UPDATE leads SET phone = NULL WHERE id = 3;

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

UPDATE leads SET phone = NULL WHERE id = 3;

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

UPDATE leads SET phone = NULL WHERE id = 3;

Code language: SQL (Structured Query Language) (sql)
7 sử dụng ràng buộc

UPDATE leads SET phone = NULL WHERE id = 3;

Code language: SQL (Structured Query Language) (sql)
8, do đó, bạn không thể chèn bất kỳ giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 nào vào các cột này, trong khi các cột

SELECT * FROM leads ORDER BY phone;

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

SELECT * FROM leads ORDER BY phone;

Code language: SQL (Structured Query Language) (sql)
1 chấp nhận giá trị NULL

Bạn có thể sử dụng giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 trong câu lệnh

SELECT * FROM leads ORDER BY phone;

Code language: SQL (Structured Query Language) (sql)
3 để xác định rằng dữ liệu bị thiếu. Ví dụ, câu lệnh sau chèn một hàng vào bảng

UPDATE leads SET phone = NULL WHERE id = 3;

Code language: SQL (Structured Query Language) (sql)
1. Vì số điện thoại bị thiếu nên giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 được sử dụng

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

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

Vì giá trị mặc định của cột email là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 nên bạn có thể lược bỏ email trong câu lệnh

SELECT * FROM leads ORDER BY phone;

Code language: SQL (Structured Query Language) (sql)
3 như sau

INSERT INTO leads(first_name,last_name,source,phone) VALUES ('Lily','Bush','Cold Calling','(408)-555-1234'), ('David','William','Web Search','(408)-888-6789');

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Câu lệnh MySQL SELECT * FROM leads ORDER BY phone;Code language: SQL (Structured Query Language) (sql)8 trong câu lệnh SELECT * FROM leads ORDER BY phone;Code language: SQL (Structured Query Language) (sql)9

Để đặt giá trị của một cột thành

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5, bạn sử dụng toán tử gán (

SELECT * FROM leads ORDER BY phone DESC;

Code language: SQL (Structured Query Language) (sql)
1). Ví dụ: để cập nhật số điện thoại của

SELECT * FROM leads ORDER BY phone DESC;

Code language: SQL (Structured Query Language) (sql)
2 thành

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5, bạn sử dụng câu lệnh  

SELECT * FROM leads ORDER BY phone;

Code language: SQL (Structured Query Language) (sql)
9 sau đây

UPDATE leads SET phone = NULL WHERE id = 3;

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

MySQL SELECT * FROM leads ORDER BY phone DESC;Code language: SQL (Structured Query Language) (sql)5 với INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5

Nếu bạn sử dụng mệnh đề

SELECT * FROM leads ORDER BY phone DESC;

Code language: SQL (Structured Query Language) (sql)
5 để sắp xếp tập kết quả theo thứ tự tăng dần, MySQL coi các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 thấp hơn các giá trị khác, do đó, nó sẽ hiển thị các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 trước

Câu lệnh sau sắp xếp khách hàng tiềm năng theo số điện thoại theo thứ tự tăng dần

SELECT * FROM leads ORDER BY phone;

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Trong trường hợp bạn sử dụng

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
0, các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 sẽ xuất hiện ở cuối tập hợp kết quả. Xem ví dụ sau.

SELECT * FROM leads ORDER BY phone DESC;

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Để kiểm tra

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 trong một truy vấn, bạn sử dụng toán tử

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
3 hoặc

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
4 trong mệnh đề

SELECT * FROM leads WHERE phone IS NULL;

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

Ví dụ, để lấy các lead chưa cung cấp số điện thoại, bạn sử dụng toán tử

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
6 như sau

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Bạn có thể sử dụng toán tử

SELECT * FROM leads WHERE phone IS NULL;

Code language: SQL (Structured Query Language) (sql)
7 để nhận tất cả khách hàng tiềm năng đã cung cấp địa chỉ email.

SELECT * FROM leads WHERE email IS NOT NULL;

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Mặc dù

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 không bằng

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 nhưng hai giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 bằng nhau trong mệnh đề

SELECT * FROM leads WHERE email IS NOT NULL;

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

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Truy vấn chỉ trả về hai hàng vì các hàng có cột email là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 được nhóm thành một.

Chỉ mục MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 và SELECT * FROM leads WHERE email IS NOT NULL;Code language: SQL (Structured Query Language) (sql)4

Khi bạn sử dụng ràng buộc ĐỘC ĐÁO hoặc chỉ số ĐỘC ĐÁO trên một cột, bạn có thể chèn nhiều giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 vào cột đó. Hoàn toàn ổn vì trong trường hợp này, MySQL coi các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 là khác biệt

Hãy xác minh điểm này bằng cách tạo chỉ mục

SELECT * FROM leads WHERE email IS NOT NULL;

Code language: SQL (Structured Query Language) (sql)
4 cho cột

SELECT * FROM leads ORDER BY phone;

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

CREATE UNIQUE INDEX idx_phone ON leads(phone);

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

Lưu ý rằng nếu bạn sử dụng công cụ lưu trữ BDB, MySQL coi các giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 là bằng nhau, do đó bạn không thể chèn nhiều giá trị

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 vào một cột có ràng buộc duy nhất

MySQL INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);Code language: SQL (Structured Query Language) (sql)5 chức năng

MySQL cung cấp một số chức năng hữu ích để xử lý NULL hiệu quả.

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

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

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

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

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

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

Hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
2 chấp nhận hai tham số. Hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
2 trả về đối số đầu tiên nếu nó không phải là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5, ngược lại, nó trả về đối số thứ hai

Ví dụ: câu lệnh sau trả về số điện thoại nếu nó không phải là

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5, ngược lại, câu lệnh sau sẽ trả về

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
9 thay vì

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

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

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
0
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
3 chấp nhận một danh sách các đối số và trả về đối số không phải NULL đầu tiên. Ví dụ: bạn có thể sử dụng hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
3 để hiển thị thông tin liên hệ của khách hàng tiềm năng dựa trên mức độ ưu tiên của thông tin theo thứ tự sau. điện thoại, email và N/A.

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
1
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
4 chấp nhận hai đối số. Nếu hai đối số bằng nhau, hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

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

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5. Mặt khác, nó trả về đối số đầu tiên.

Hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
4 rất hữu ích khi bạn có cả giá trị chuỗi

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 và giá trị chuỗi trống trong một cột. Ví dụ, do nhầm lẫn, bạn chèn một hàng sau vào bảng

UPDATE leads SET phone = NULL WHERE id = 3;

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

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

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

Điện thoại là một chuỗi rỗng thay vì

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

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

Nếu bạn muốn lấy thông tin liên hệ của khách hàng tiềm năng, bạn sẽ nhận được một chiếc điện thoại trống thay vì email như truy vấn sau

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
1
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Để khắc phục, bạn dùng hàm

SELECT id, first_name, last_name, email, phone FROM leads GROUP BY email;

Code language: SQL (Structured Query Language) (sql)
4 để so sánh số điện thoại với chuỗi rỗng, nếu bằng nhau thì trả về

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5, ngược lại thì trả về số điện thoại.

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
4
MySQL có coi chuỗi rỗng là NULL không?
MySQL có coi chuỗi rỗng là NULL không?

Trong hướng dẫn này, bạn đã học cách làm việc với MySQL

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 và cách sử dụng một số chức năng tiện dụng để xử lý

INSERT INTO leads(first_name,last_name,source,email,phone) VALUE('John','Doe','Web Search','[email protected]',NULL);

Code language: SQL (Structured Query Language) (sql)
5 trong truy vấn.

Chuỗi rỗng có được coi là NULL không?

Chuỗi rỗng là một thể hiện của chuỗi có độ dài bằng 0, trong khi chuỗi rỗng không có giá trị gì cả . Một chuỗi rỗng được biểu thị là "". Đó là một chuỗi ký tự gồm 0 ký tự. Một chuỗi null được đại diện bởi null.

Chuỗi rỗng có được coi là NULL trong SQL không?

Giá trị null thể hiện sự vắng mặt của bất kỳ đối tượng nào, trong khi chuỗi rỗng là một đối tượng thuộc loại Chuỗi không có ký tự nào . Nếu bạn thử so sánh hai cái, chúng không giống nhau.

Chuỗi rỗng có byte NULL không?

Một chuỗi rỗng có một phần tử duy nhất, ký tự null, '\0' . Đó vẫn là một ký tự và chuỗi có độ dài bằng 0, nhưng nó không giống như chuỗi rỗng, không có ký tự nào cả.

Làm cách nào để chuyển đổi chuỗi rỗng thành NULL trong SQL?

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; .