Hướng dẫn mysql insert null instead of 0 - mysql chèn null thay vì 0

Tôi đang sử dụng mysql và phpmyadmin, tôi có một bảng có tên

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
2 - cấu trúc như sau;

+------+---------+------+---------+
| name | type    | Null | Default |
+------+---------+------+---------+
| id   | int(11) | No   | None    |
+------+---------+------+---------+
| year | int(4)  | Yes  | Null    |
+------+---------+------+---------+

Trong phpmyadmin, tôi chạy truy vấn sau;

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'

Điều này thực hiện thành công.

Sau đó, tôi chạy truy vấn này;

SELECT * FROM `item` WHERE `item_id` = '5'

Điều này thực hiện thành công và tạo ra những điều sau đây;

+-----+------+
| id  | year |
+-----+------+
| 5   | 0    |
+-----+------+

Tại sao trường

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
3
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
4 - không nên là
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5? Tôi có làm điều gì sai?

Làm thế nào để thay thế một chuỗi trống bằng null trong truy vấn chèn mysql?

Tìm hiểu cách thay thế một chuỗi trống bằng null trong mysql/mariadb

  • 04 tháng 9 năm 2020
  • 2 phút đọc

Trong aricle này, chúng ta sẽ thấy làm thế nào chúng ta có thể chèn các giá trị

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 thay cho một chuỗi trống trong mysql/mariadb. Đối với các ví dụ trong bài viết này, giả sử rằng:

  1. Chúng tôi có một bảng
    UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
    
    7 với ba cột;
    UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
    
    8,
    UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
    
    9 và
    SELECT * FROM `item` WHERE `item_id` = '5'
    
    0;
  2. Chúng tôi có một biến
    SELECT * FROM `item` WHERE `item_id` = '5'
    
    1 (trong bất kỳ ngôn ngữ lập trình nào) có khả năng có một chuỗi trống là giá trị.

Chúng tôi sẽ sử dụng lược đồ xây dựng sau để xây dựng bảng của chúng tôi:

CREATE TABLE `user` (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(25) NOT NULL,
    job_title VARCHAR(25),
    PRIMARY KEY (id)
);

Sử dụng hàm SELECT * FROM `item` WHERE `item_id` = '5' 2

Hàm

SELECT * FROM `item` WHERE `item_id` = '5'
2 trả về
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 nếu hai biểu thức (ví dụ:
SELECT * FROM `item` WHERE `item_id` = '5'
5 và
SELECT * FROM `item` WHERE `item_id` = '5'
6) bằng nhau. Nếu hai biểu thức không bằng nhau, biểu thức đầu tiên được trả về. Nó có cú pháp sau:

# Return NULL if expr1 = expr2
NULLIF(expr1, expr2)

Ví dụ: để chèn

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 thay vì một chuỗi trống bằng cách sử dụng
SELECT * FROM `item` WHERE `item_id` = '5'
2, chúng ta có thể thực hiện các như sau:

INSERT INTO `user` (`name`, `job_title`)
VALUES ('john', NULLIF('$jobTitle', ''));

Điều này sẽ chèn

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 trong cột
SELECT * FROM `item` WHERE `item_id` = '5'
0 khi giá trị của biến "
SELECT * FROM `item` WHERE `item_id` = '5'
1" khớp với một chuỗi trống. Và, khi hai biểu thức không khớp, giá trị của biến
SELECT * FROM `item` WHERE `item_id` = '5'
1 sẽ được chèn.

Sử dụng chức năng +-----+------+ | id | year | +-----+------+ | 5 | 0 | +-----+------+ 3

Hàm

+-----+------+
| id  | year |
+-----+------+
| 5   | 0    |
+-----+------+
3 trả về biểu thức thứ nhất nếu điều kiện là
+-----+------+
| id  | year |
+-----+------+
| 5   | 0    |
+-----+------+
5 và biểu thức thứ hai nếu điều kiện là
+-----+------+
| id  | year |
+-----+------+
| 5   | 0    |
+-----+------+
6. Nó có cú pháp sau:

IF(condition, expr1, expr2)

Chúng ta chỉ có thể có một điều kiện để kiểm tra xem giá trị đến từ một biến (ví dụ: "

SELECT * FROM `item` WHERE `item_id` = '5'
1") có phải là một chuỗi trống hay không, và theo đó trả về
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 nếu điều kiện là
+-----+------+
| id  | year |
+-----+------+
| 5   | 0    |
+-----+------+
5 hoặc chính chuỗi khác. Ví dụ:

INSERT INTO `user` (`name`, `job_title`)
VALUES ('john', IF('$jobTitle' = '', NULL, '$jobTitle'));

Sử dụng toán tử CREATE TABLE `user` ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, job_title VARCHAR(25), PRIMARY KEY (id) ); 0

Sử dụng

CREATE TABLE `user` (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(25) NOT NULL,
    job_title VARCHAR(25),
    PRIMARY KEY (id)
);
0 có thể là một lựa chọn khác. Tuy nhiên, nó có thể không phải là lựa chọn tốt nhất khi bạn chỉ có một điều kiện. Cú pháp cho nó như sau:

CASE
    WHEN condition1 THEN result1
    # ...
    WHEN conditionN THEN resultN
    ELSE result
END;

Ví dụ sau đây cho thấy cách sử dụng

CREATE TABLE `user` (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(25) NOT NULL,
    job_title VARCHAR(25),
    PRIMARY KEY (id)
);
0, chúng ta có thể chèn
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
5 khi "
SELECT * FROM `item` WHERE `item_id` = '5'
1" trống và chèn giá trị của biến khác nếu không:

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
0


Hy vọng bạn tìm thấy bài viết này hữu ích. Nó đã được xuất bản ngày 04 tháng 9 năm 2020. Vui lòng thể hiện tình yêu và sự hỗ trợ của bạn bằng cách chia sẻ bài đăng này.

  • Phát triển web
  • Phụ trợ
  • Mysql
  • Mariadb
  • SQL
  • Cơ sở dữ liệu


Đó là bởi vì chèn một chuỗi trống có nghĩa là chúng ta đang chèn một số giá trị và không phải là null. Chuỗi trống dường như ánh xạ đến 0 dưới dạng số nguyên. Nói cách khác, chúng ta có thể nói rằng bằng cách chèn chuỗi trống, chúng ta đang cung cấp một giá trị cho MySQL có biểu diễn số nguyên như int 0. Hãy xem xét ví dụ sau trong đó chúng ta chèn một chuỗi trống và nó được ánh xạ tới 0 bởi MySQL.

UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
1

Hướng dẫn mysql insert null instead of 0 - mysql chèn null thay vì 0

Cập nhật vào ngày 14 tháng 2 năm 2020 06:22:42

  • Câu hỏi và câu trả lời liên quan
  • Kiểu dữ liệu vai trò nào đóng khi tôi chèn một chuỗi trống vào cột MySQL được khai báo là không phải là null?
  • Làm thế nào có thể chèn một chuỗi không hoặc một chuỗi trống vào cột MySQL được định nghĩa là không phải là null?
  • Chuỗi trống trong cột Not-Null trong MySQL?
  • Cái nào tốt hơn để chèn null hoặc chuỗi trống vào mysql?
  • Cái nào tốt hơn trong mysql - null hoặc chuỗi trống?
  • Chèn mặc định vào cột không null nếu giá trị là null trong mysql?
  • Kiểm tra xem một chuỗi không trống ("") và không null trong java
  • Làm thế nào để kiểm tra chuỗi là null hoặc trống?
  • Làm cách nào để kiểm tra xem một cột có trống hoặc null trong mysql không?
  • Làm thế nào để cập nhật chuỗi trống lên null trong mysql?
  • Chia một chuỗi và chèn nó dưới dạng các giá trị riêng lẻ vào bảng MySQL?
  • Truy vấn MongoDB đại diện không bằng null hay trống?
  • Chương trình Java để kiểm tra xem một chuỗi có trống hay không
  • Kiểm tra xem một chuỗi có trống không ("") hoặc null trong java
  • Tại sao kích thước của một lớp trống không phải bằng không trong C ++?

0 được coi là null trong mysql?

Trong mysql, 0 hoặc null có nghĩa là sai và bất cứ điều gì khác có nghĩa là đúng.Giá trị sự thật mặc định từ một hoạt động boolean là 1.0 or NULL means false and anything else means true. The default truth value from a boolean operation is 1 .

0 là một số nguyên trong mysql?

Giới thiệu về MySQL Int Loại Một số nguyên có thể bằng không, dương và âm.MySQL hỗ trợ tất cả các loại số nguyên SQL tiêu chuẩn hoặc int và nhỏ.Ngoài ra, MySQL cung cấp tinyint trung bình và Bigint làm phần mở rộng cho tiêu chuẩn SQL.An integer can be zero, positive, and negative. MySQL supports all standard SQL integer types INTEGER or INT and SMALLINT . In addition, MySQL provides TINYINT MEDIUMINT , and BIGINT as extensions to the SQL standard.

Chuỗi trống có phải là null trong mysql không?

Khái niệm về null và chuỗi trống thường tạo ra sự nhầm lẫn vì nhiều người nghĩ rằng NULL giống như một chuỗi trống MySQL.Tuy nhiên, đây không phải là trường hợp.Một chuỗi trống là một thể hiện chuỗi có độ dài bằng không.Tuy nhiên, một null không có giá trị nào cả.this is not the case. An empty string is a string instance of zero length. However, a NULL has no value at all.