เราใช้ MySQL เวอร์ชัน 8.0.12 ให้เราตรวจสอบเวอร์ชันของ MySQL ก่อน:
mysql> เลือกเวอร์ชัน ();+-----------+| รุ่น() |+-----------+| 8.0.12 |+-----------+1 แถวในชุด (0.00 วินาที)
ในการจัดการบูลีนใน MySQL คุณสามารถใช้ BOOL หรือ BOOLEAN หรือ TINYINT(1) หากคุณใช้ BOOL หรือ BOOLEAN แล้ว MySQL จะแปลงเป็น TINYINT(1) ภายใน
ในประเภทข้อมูล BOOL หรือ BOOLEAN หากคุณใช้ตัวอักษรจริง MySQL จะแสดงเป็น 1 และตัวอักษรเท็จเป็น 0 เช่นเดียวกับในภาษา PHP/ C/ C++
เพื่อพิสูจน์ว่า MySQL แปลง BOOL หรือ BOOLEAN เป็น TINYINT(1) ให้เราสร้างตารางที่มีคอลัมน์ BOOLEAN หรือ BOOL
ที่นี่ เรากำลังสร้างตารางที่มีคอลัมน์ BOOLEAN แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง BoolOrBooleanOrTinyintDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> isvalidAddress BOOLEAN, -> PRIMARY KEY(Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.74 วินาที)
ตอนนี้ตรวจสอบ DDL ของตารางด้านบนโดยใช้คำสั่ง SHOW CREATE แบบสอบถามมีดังนี้:
mysql> แสดงการสร้างตาราง BoolOrBooleanOrTinyintDemo\G
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>****************************** 1. แถว ***************** ********** ตาราง:BoolOrBooleanOrTinyintDemoCreate ตาราง:CREATE TABLE `boolorbooleanortinyintdemo' ( 'Id' int (11) ไม่ใช่ NULL AUTO_INCREMENT, 'isvalidAddress' tinyint (1) ค่าเริ่มต้น NULL, คีย์หลัก ('Id')) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 แถวในชุด (0.00 วินาที)ดูที่คอลัมน์ isvalidAddress ชนิดข้อมูล BOOLEAN จะถูกแปลงเป็น Tinyint(1) ภายใน ตอนนี้คุณสามารถตรวจสอบว่าตัวอักษรจริงจะแสดงด้วย 1 และตัวอักษรเท็จด้วย 0 แทรกระเบียนบางรายการในตารางด้วยค่าตัวอักษรจริงและเท็จ แบบสอบถามที่จะแทรกบันทึกมีดังนี้:
mysql> แทรกลงในค่า BoolOrBooleanOrTinyintDemo(isvalidAddress) (จริง) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงในค่า BoolOrBooleanOrTinyintDemo (isvalidAddress) (เท็จ) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกค่า BoolOrBooleanOrTinyintDemo(isvalidAddress) (จริง) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงใน BoolOrBooleanOrTinyintDemo (isvalidAddress) (เท็จ); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน BoolOrBooleanOr (isvalidAddress) ค่า (จริง) แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.33 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามเพื่อแสดงระเบียนทั้งหมดมีดังนี้:
mysql> เลือก *จาก BoolOrBooleanOrTinyintDemo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+---+----------------+| รหัส | isvalidAddress |+----+----------------+| 1 | 1 || 2 | 0 || 3 | 1 || 4 | 0 || 5 | 1 |+----+----------------+5 แถวในชุด (0.00 วินาที)ดูตัวอย่างผลลัพธ์ด้านบน โดย true แทนค่า 1 และ false แทนค่า 0
ใน PHP หากคุณใช้ true จะแสดงเป็น 1 และ false จะแสดงเป็น 0
ดูโค้ด PHP ต่อไปนี้ ที่นี่ ฉันได้ตั้งค่าตัวแปร 'isValidAddress' ค่าคือ 1 ซึ่งหมายความว่าจะประเมินเงื่อนไขว่าเป็นจริงและดำเนินการเนื้อหาของคำสั่ง if เท่านั้น ตรวจสอบรหัสต่อไปนี้:
$isValidAddress =1;if($isValidAddress){ echo 'true แสดงเป็น '; echo ($isValidAddress);}else{ echo 'false แสดงเป็น'; echo ($isValidAddress);}
นี่คือสแนปชอตของโค้ด:
ต่อไปนี้เป็นผลลัพธ์:
หากคุณเปลี่ยนตัวแปร 'isValidAddress' เป็นค่า 0 นั่นหมายความว่าจะประเมินเงื่อนไข if เป็นเท็จ และดำเนินการเนื้อหาของคำสั่ง else เท่านั้น ต่อไปนี้เป็นรหัส:
$isValidAddress=0;if($isValidAddress){ echo 'true แสดงเป็น '; echo ($isValidAddress);}else{ echo 'false แสดงเป็น'; echo ($isValidAddress);}
นี่คือสแนปชอตของโค้ด:
ต่อไปนี้เป็นผลลัพธ์: