Biến IF là NULL MySQL

Quy trình được lưu trữ của tôi thực hiện SELECT .. INTO var mang lại NULL, nhưng nếu tôi lặp lại chính SELECT đó, tôi nhận được một giá trị

Đây là phần có liên quan của lược đồ

CREATE TABLE UrlAuthority
[
     id              BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
    ,name            VARCHAR[255] NOT NULL COMMENT 'includes TLD suffix'
    ,UNIQUE[name]
]
ENGINE = INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;



CREATE TABLE UrlFqdn
[
     id              BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
    ,authority       BIGINT NOT NULL COMMENT 'references example.com'
    ,name            VARCHAR[255] NOT NULL COMMENT 'host.example.com'
    ,FOREIGN KEY [authority] REFERENCES UrlAuthority [id]
    ,UNIQUE [authority, name]
]
ENGINE = INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;



CREATE TABLE Url
[
     id              BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
    ,fqdn            BIGINT NOT NULL
    ,path            VARCHAR[255] NOT NULL
    ,FOREIGN KEY [fqdn] REFERENCES UrlFqdn [id]
    ,UNIQUE [fqdn, path]
]
ENGINE = INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Và đây là thủ tục

CREATE PROCEDURE UrlToId [url TEXT]
BEGIN
    DECLARE host      TEXT;
    DECLARE authority TEXT;
    DECLARE tld       TEXT;
    DECLARE pathtext  TEXT;

    DECLARE authority_tld TEXT;
    DECLARE fqdn          TEXT;
    DECLARE authority_id  BIGINT;
    DECLARE fqdn_id       BIGINT;
    DECLARE url_id        BIGINT;
    DECLARE err           TEXT;

    CALL UnpackURL [url, host, authority, tld, pathtext];

    SELECT JoinHostNames[authority, tld]      INTO authority_tld;
    SELECT JoinHostNames[host, authority_tld] INTO fqdn;

    INSERT IGNORE INTO UrlAuthority [name] VALUES [authority_tld];

    SELECT id
    INTO authority_id
    FROM UrlAuthority
    WHERE name=authority_tld;

    -- LOG ['UrlAuthority', authority_tld, authority_id]

    INSERT IGNORE INTO UrlFqdn [authority, name]
    VALUES [authority_id, fqdn];

    SELECT id
    INTO fqdn_id
    FROM UrlFqdn
    WHERE authority=authority_id AND name=fqdn;

    -- LOG ['UrlFqdn', fqdn, fqdn_id]

    INSERT IGNORE INTO Url [fqdn, path] VALUES [fqdn_id, pathtext];

    -- LOG ['Url', fqdn_id, pathtext]

    SELECT id FROM Url WHERE fqdn=fqdn_id AND path=pathtext;
END
|

Các dòng LOG là một chút lập trình siêu dữ liệu, chúng chèn các chuỗi vào bảng gỡ lỗi

nếu tôi chạy

call UrlToId['//mail4.z.uk/foo/bar'];

Tôi nhận được những thông báo gỡ lỗi này

UrlAuthority authority_tld=z.uk authority_id=1
UrlFqdn fqdn=mail4.z.uk fqdn_id=NULL
Url fqdn_id=NULL pathtext=/foo/bar

Rõ ràng vấn đề là fqdn_id=NULL, tuy nhiên, nếu tôi lặp lại truy vấn theo cách thủ công mà thực hiện SELECT id INFO fqdn_id và thay thế các giá trị của các biến được nêu trong dấu vết

Điều kiện MySQL IS NULL được sử dụng để kiểm tra giá trị 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 NULL trong MySQL là

expression IS 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ông

Ghi chú

  • Nếu biểu thức là một giá trị NULL, điều kiện đánh giá là TRUE
  • Nếu biểu thức không phải là giá trị NULL, điều kiện ước tính là FALSE

Ví dụ - Với câu lệnh SELECT

Hãy xem một ví dụ về cách sử dụng MySQL IS NULL trong câu lệnh SELECT

SELECT *
FROM contacts
WHERE last_name IS NULL;

Ví dụ MySQL IS NULL này sẽ xóa tất cả các bản ghi khỏi bảng danh bạ nơi last_name chứa giá trị 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ông

Ghi 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

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','john.doe@acme.com',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ố chức năng hữu ích để xử lý các giá trị

INSERT INTO leads[first_name,last_name,source,email,phone] VALUE['John','Doe','Web Search','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
5 khác 0 [_______13_______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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',NULL];

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

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

INSERT INTO leads[first_name,last_name,source,email,phone] VALUE['John','Doe','Web Search','john.doe@acme.com',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','john.doe@acme.com',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 các 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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',NULL];

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

________số 8_______

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','john.doe@acme.com',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

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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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]

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','john.doe@acme.com',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]

Để kiểm tra

INSERT INTO leads[first_name,last_name,source,email,phone] VALUE['John','Doe','Web Search','john.doe@acme.com',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 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]

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]

Mặc dù

INSERT INTO leads[first_name,last_name,source,email,phone] VALUE['John','Doe','Web Search','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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]

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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
5, ngược lại, nó 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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
5

INSERT INTO leads[first_name,last_name,source,email,phone] VALUE['John','Doe','Web Search','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
0

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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
1

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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
1

Để 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','john.doe@acme.com',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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
4

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','john.doe@acme.com',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','john.doe@acme.com',NULL];

Code language: SQL [Structured Query Language] [sql]
5 trong truy vấn.

Làm cách nào để kiểm tra xem biến có phải là NULL trong MySQL không?

Hàm ISNULL[] của MySQL dùng để kiểm tra xem một biểu thức có phải là NULL hay không. Hàm này trả về 1 nếu biểu thức được truyền là NULL, ngược lại trả về 0. Hàm ISNULL[] chấp nhận biểu thức dưới dạng tham số và trả về một số nguyên có giá trị 0 hoặc 1 tùy thuộc vào tham số được truyền.

IS NULL trong điều kiện if trong MySQL?

Hàm ISNULL[] của MySQL được sử dụng để kiểm tra mọi giá trị NULL trong biểu thức được truyền cho nó dưới dạng tham số . Nếu biểu thức có/kết quả là NULL, nó sẽ hiển thị 1. Nếu biểu thức không có hoặc cho kết quả NULL, hàm trả về 0.

Làm cách nào để sử dụng nếu NULL trong MySQL?

Hàm IFNULL chấp nhận hai biểu thức và nếu biểu thức đầu tiên không rỗng, nó sẽ trả về các đối số đầu tiên. Nếu biểu thức đầu tiên là null, nó sẽ trả về đối số thứ hai . Hàm này trả về giá trị chuỗi hoặc số, tùy thuộc vào ngữ cảnh nơi nó được sử dụng.

NULL[] có trong MySQL không?

Trong MySQL, 0 hoặc NULL có nghĩa là sai và mọi thứ khác có nghĩa là đúng . Giá trị thật mặc định từ phép toán boolean là 1.

Chủ Đề