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

วิธีจัดการกับค่า 'บูลีน' ใน PHP &MySQL?


เราใช้ 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);}

นี่คือสแนปชอตของโค้ด:

วิธีจัดการกับค่า  บูลีน  ใน PHP &MySQL?

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

วิธีจัดการกับค่า  บูลีน  ใน PHP &MySQL?

หากคุณเปลี่ยนตัวแปร 'isValidAddress' เป็นค่า 0 นั่นหมายความว่าจะประเมินเงื่อนไข if เป็นเท็จ และดำเนินการเนื้อหาของคำสั่ง else เท่านั้น ต่อไปนี้เป็นรหัส:

$isValidAddress=0;if($isValidAddress){ echo 'true แสดงเป็น '; echo ($isValidAddress);}else{ echo 'false แสดงเป็น'; echo ($isValidAddress);}

นี่คือสแนปชอตของโค้ด:

วิธีจัดการกับค่า  บูลีน  ใน PHP &MySQL?

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

วิธีจัดการกับค่า  บูลีน  ใน PHP &MySQL?