ได้ คุณสามารถใช้ฟังก์ชัน if() จาก MySQL เพื่อย้อนกลับฟิลด์บูลีน ไวยากรณ์มีดังนี้ −
อัปเดต yourTableName ตั้งค่า yourBooleanColumnName =IF(yourBooleanColumnName,0,1);
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง ReverseBooleanField -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> isValid BOOLEAN -> , -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)
ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า ReverseBooleanField(isValid) (จริง) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า ReverseBooleanField (isValid) (เท็จ) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า ReverseBooleanField (isValid) (จริง) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงในค่า ReverseBooleanField (isValid) (จริง); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงใน ReverseBooleanField (isValid) ค่า (เท็จ) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก ReverseBooleanField;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----+---------+| รหัส | isValid |+----+---------+| 1 | 1 || 2 | 0 || 3 | 1 || 4 | 1 || 5 | 0 |+----+---------+5 แถวในชุด (0.00 วินาที)MySQL ภายในแปลง BOOLEAN เป็น TINYINT(1) ซึ่งให้ค่าจริงเป็น 1 และเท็จเป็น 0
ตอนนี้ ให้เราย้อนกลับฟิลด์บูลีนในแบบสอบถามเดียว -
mysql> อัปเดตชุด ReverseBooleanField isValid =if(isValid,0,1);แบบสอบถามตกลง 5 แถวได้รับผลกระทบ (0.21 วินาที) แถวที่ตรงกัน − 5 เปลี่ยน − 5 คำเตือน − 0
ตรวจสอบว่าฟิลด์บูลีนกลับรายการหรือไม่โดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก ReverseBooleanField;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----+---------+| รหัส | isValid |+----+---------+| 1 | 0 || 2 | 1 || 3 | 0 | | 4 | 0 || 5 | 1 |+----+---------+5 แถวในชุด (0.00 วินาที)