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

สตริงว่างในคอลัมน์ที่ไม่เป็นค่าว่างใน MySQL?


ใน PHP สตริงว่างจะเท่ากับค่า NULL แต่ใน MySQL ตัวพิมพ์จะแตกต่างกัน กล่าวคือ สตริงว่างไม่เท่ากับค่า NULL เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลัมน์ที่มีข้อจำกัด NOT NULL ในขณะที่คุณสามารถแทรกสตริงว่างได้

ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง EmptyStringNotNullDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(10) ไม่ใช่ null, -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ (0.83 วินาที) 

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางเพื่อตรวจสอบว่าสตริงว่างเป็นค่าว่างหรือไม่เป็นค่าว่าง แบบสอบถามเพื่อแทรกบันทึกมีดังนี้ -

mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) (''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.43 sec)mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) (''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที )mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) (''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า EmptyStringNotNullDemo (ชื่อ) ('Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) 

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก EmptyStringNotNullDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | จอห์น || 2 | || 3 | แครอล || 4 | || 5 | || 6 | Larry |+----+-------+6 แถวในชุด (0.00 วินาที)

ตอนนี้ตรวจสอบว่าสตริงว่างเป็น NULL หรือ NOT NULL ใน MySQL หากคุณได้ 0 แสดงว่าสตริงว่างไม่เท่ากับ NULL มิฉะนั้น สตริงว่างจะเป็น NULL แบบสอบถามมีดังนี้ −

mysql> เลือกชื่อ ชื่อเป็น NULL เป็น EmptyValueIsNotNULL จาก EmptyStringNotNullDemo

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------+---------------------+| ชื่อ | EmptyValueIsNotNULL |+-------+---------------------+| จอห์น | 0 || | 0 || แครอล | 0 || | 0 || | 0 || แลร์รี่ | 0 |+-------+---------------------+6 แถวในชุด (0.00 วินาที)

คุณสามารถบรรลุได้ด้วยความช่วยเหลือของตัวแปรที่ผู้ใช้กำหนด ไวยากรณ์มีดังนี้ −

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

ใช้ไวยากรณ์ข้างต้นสำหรับตารางที่กำหนด แบบสอบถามมีดังต่อไปนี้เพื่อประกาศและกำหนดตัวแปรผู้ใช้

mysql> set @emptyStringValue="";Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

อัปเดตตารางด้วยสตริงว่าง แบบสอบถามมีดังนี้ −

mysql> อัปเดต EmptyStringNotNullDemo set Name=@emptyStringValue;Query OK, 3 แถวได้รับผลกระทบ (0.25 วินาที) แถวที่ตรงกัน:6 เปลี่ยน:3 คำเตือน:0

แสดงบันทึกทั้งหมดจากตารางอีกครั้ง แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก EmptyStringNotNullDemo;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---+------+| รหัส | ชื่อ |+----+------+| 1 | || 2 | || 3 | || 4 | || 5 | || 6 | |+----+------+6 แถวในชุด (0.00 วินาที)

อัปเดตคอลัมน์ "ชื่อ" แล้ว