Computer >> Máy Tính >  >> Lập trình >> MySQL

Chuỗi trống trong cột not-null trong MySQL?

Trong PHP, chuỗi rỗng tương đương với giá trị NULL, nhưng trong MySQL, trường hợp khác là chuỗi rỗng không bằng giá trị NULL. Để hiểu cú pháp trên, chúng ta hãy tạo một cột với ràng buộc NOT NULL trong khi bạn có thể chèn một chuỗi trống.

Hãy để chúng tôi tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table EmptyStringNotNullDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(10) not null,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.83 sec)

Bây giờ bạn có thể chèn một số bản ghi trong bảng để kiểm tra chuỗi trống là null hay không null. Truy vấn để chèn bản ghi như sau -

mysql> insert into EmptyStringNotNullDemo(Name) values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into EmptyStringNotNullDemo(Name) values('');
Query OK, 1 row affected (0.43 sec)
mysql> insert into EmptyStringNotNullDemo(Name) values('Carol');
Query OK, 1 row affected (0.12 sec)
mysql> insert into EmptyStringNotNullDemo(Name) values('');
Query OK, 1 row affected (0.13 sec)
mysql> insert into EmptyStringNotNullDemo(Name) values('');
Query OK, 1 row affected (0.16 sec)
mysql> insert into EmptyStringNotNullDemo(Name) values('Larry');
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng một câu lệnh chọn. Truy vấn như sau -

mysql> select *from EmptyStringNotNullDemo;

Sau đây là kết quả -

+----+-------+
| Id | Name  |
+----+-------+
|  1 | John  |
|  2 |       |
|  3 | Carol |
|  4 |       |
|  5 |       |
|  6 | Larry |
+----+-------+
6 rows in set (0.00 sec)

Bây giờ hãy kiểm tra chuỗi trống là NULL hay NOT NULL trong MySQL. Nếu bạn nhận được số 0 có nghĩa là chuỗi trống không bằng NULL, ngược lại chuỗi trống là NULL. Truy vấn như sau -

mysql> select Name, Name IS NULL as EmptyValueIsNotNULL from EmptyStringNotNullDemo;

Sau đây là kết quả -

+-------+---------------------+
| Name  | EmptyValueIsNotNULL |
+-------+---------------------+
| John  |                   0 |
|       |                   0 |
| Carol |                   0 |
|       |                   0 |
|       |                   0 |
| Larry |                   0 |
+-------+---------------------+
6 rows in set (0.00 sec)

Bạn có thể đạt được với sự trợ giúp của biến do người dùng xác định. Cú pháp như sau -

SET @anyVariableName=” ”;
UPDATE yourTableName SET yourColumnName= @anyVariableName;

Thực hiện cú pháp trên cho bảng đã cho. Truy vấn như sau để khai báo và xác định một biến người dùng.

mysql> set @emptyStringValue="";
Query OK, 0 rows affected (0.00 sec)

Cập nhật bảng với một chuỗi trống. Truy vấn như sau -

mysql> update EmptyStringNotNullDemo set Name=@emptyStringValue;
Query OK, 3 rows affected (0.25 sec)
Rows matched: 6 Changed: 3 Warnings: 0

Hiển thị tất cả các bản ghi từ bảng một lần nữa. Truy vấn như sau -

mysql> select *from EmptyStringNotNullDemo;

Sau đây là kết quả -

+----+------+
| Id | Name |
+----+------+
|  1 |      |
|  2 |      |
|  3 |      |
|  4 |      |
|  5 |      |
|  6 |      |
+----+------+
6 rows in set (0.00 sec)

Cột 'Tên' đã được cập nhật.