Hướng dẫn MySQL này giải thích cách sử dụng MYSQL không phải là điều kiện NULL với cú pháp và ví dụ.IS NOT NULL condition with syntax and examples.
Sự mô tả
MYSQL không phải là điều kiện NULL được sử dụng để kiểm tra giá trị không null trong câu lệnh CHỌN, CHUNG, CẬP NHẬT hoặc XÓA.
Cú pháp
Cú pháp cho điều kiện không phải là NULL trong MySQL là:
expression IS NOT NULL
Tham số hoặc đối số
Biểu thức Giá trị để kiểm tra nếu nó là một giá trị không null.Ghi chú
- Nếu biểu thức không phải là một giá trị null, điều kiện sẽ đánh giá là true.
- Nếu biểu thức là một giá trị null, điều kiện đánh giá là sai.
Ví dụ - với câu lệnh select
Dưới đây là một ví dụ về cách sử dụng MySQL không phải là điều kiện NULL trong câu lệnh Chọn:
SELECT * FROM contacts WHERE last_name IS NOT NULL;
MYSQL này không phải là ví dụ NULL sẽ trả về tất cả các bản ghi từ bảng Danh bạ trong đó Last_Name không chứa giá trị null.
Ví dụ - với câu lệnh chèn
Dưới đây là một ví dụ về cách sử dụng MySQL không phải là điều kiện NULL trong một câu lệnh chèn:
INSERT INTO contacts [contact_id, contact_name] SELECT account_no, supplier_name FROM suppliers WHERE category IS NOT NULL;
MYSQL này không phải là ví dụ NULL sẽ chèn các bản ghi vào bảng Danh bạ trong đó danh mục không chứa giá trị null.
Ví dụ - với câu lệnh cập nhật
Dưới đây là một ví dụ về cách sử dụng MySQL không phải là điều kiện NULL trong câu lệnh cập nhật:
UPDATE contacts SET status = 'completed' WHERE last_name IS NOT NULL;
MYSQL này không phải là ví dụ NULL sẽ cập nhật các bản ghi trong bảng Danh bạ trong đó Last_Name không chứa giá trị null.
Ví dụ - với tuyên bố xóa
Dưới đây là một ví dụ về cách sử dụng MySQL không phải là điều kiện NULL trong câu lệnh xóa:
DELETE FROM contacts WHERE last_name IS NOT NULL;
MYSQL này không phải là ví dụ NULL sẽ xóa tất cả các bản ghi từ bảng Danh bạ trong đó Last_Name không chứa giá trị null.
Tôi có một quy trình lưu trữ MySQL trong đó tôi tìm thấy giá trị tối đa từ bảng.
Nếu không có giá trị, tôi muốn đặt biến cho ngày hôm qua.
DECLARE current_procedure_name CHAR[60] DEFAULT 'accounts_general';
DECLARE last_run_time datetime DEFAULT NULL;
DECLARE current_run_time datetime DEFAULT NOW[];
-- Define the last run time
SET last_run_time := [SELECT MAX[runtime]
FROM dynamo.runtimes WHERE procedure_name = @current_procedure_name];
-- if there is no last run time found then use yesterday as starting point
IF[@last_run_time IS NULL] THEN
SET last_run_time := DATE_SUB[ NOW[], INTERVAL 1 DAY];
END IF;
SELECT @last_run_time;
Vấn đề là @last_run_time
luôn vô hiệu.
Mã sau không được thực thi vì một số lý do
IF[last_run_time IS NULL] THEN
SET last_run_time := DATE_SUB[ NOW[], INTERVAL 1 DAY];
END IF;
Làm thế nào tôi có thể đặt biến @last_run_time
một cách chính xác?
Hỏi ngày 28 tháng 8 năm 2013 lúc 23:06Aug 28, 2013 at 23:06
2
@last_run_time
là 9,4. Các biến do người dùng xác định và
SELECT * FROM contacts WHERE last_name IS NOT NULL;1 một 13.6.4.1. Biến cục bộ Tuyên bố Syntax, là các biến khác nhau.
Hãy thử:
SELECT * FROM contacts WHERE last_name IS NOT NULL;2
CẬP NHẬT
Example:
/* CODE FOR DEMONSTRATION PURPOSES */
DELIMITER $$
CREATE PROCEDURE `sp_test`[]
BEGIN
DECLARE current_procedure_name CHAR[60] DEFAULT 'accounts_general';
DECLARE last_run_time DATETIME DEFAULT NULL;
DECLARE current_run_time DATETIME DEFAULT NOW[];
-- Define the last run time
SET last_run_time := [SELECT MAX[runtime] FROM dynamo.runtimes WHERE procedure_name = current_procedure_name];
-- if there is no last run time found then use yesterday as starting point
IF[last_run_time IS NULL] THEN
SET last_run_time := DATE_SUB[NOW[], INTERVAL 1 DAY];
END IF;
SELECT last_run_time;
-- Insert variables in table2
INSERT INTO table2 [col0, col1, col2] VALUES [current_procedure_name, last_run_time, current_run_time];
END$$
DELIMITER ;
Đã trả lời ngày 28 tháng 8 năm 2013 lúc 23:16Aug 28, 2013 at 23:16
wchiquitowchiquitowchiquito
15.9k2 Huy hiệu vàng33 Huy hiệu bạc45 Huy hiệu Đồng2 gold badges33 silver badges45 bronze badges
10