Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เหตุใดจึงแสดง 0 แทนที่จะเป็นสตริงว่างทุกครั้งที่ฉันแทรกสตริงว่างลงในคอลัมน์ MySQL ซึ่งถูกประกาศว่าไม่ใช่ NULL


เป็นเพราะการแทรกสตริงว่างหมายความว่าเรากำลังแทรกค่าบางอย่างไม่ใช่ NULL เห็นได้ชัดว่าสตริงว่างจับคู่กับศูนย์เป็นจำนวนเต็ม กล่าวอีกนัยหนึ่ง เราสามารถพูดได้ว่าโดยการแทรกสตริงว่าง เรากำลังจัดเตรียมค่าให้กับ MySQL ที่มีการแทนค่าจำนวนเต็มเป็น INT 0 ให้พิจารณาตัวอย่างต่อไปนี้ที่เราแทรกสตริงว่างและจับคู่กับ 0 โดย MySQL

mysql> create table test(id int NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)

mysql> Insert into test(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1

mysql> Select * from test;
+----+--------+
| id | Name   |
+----+--------+
| 1  | Gaurav |
| 0  | Rahul  |
| 0  | Aarav  |
+----+--------+
3 rows in set (0.00 sec)