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

MySQL แปลง bool เป็น tinyint (1) ภายในหรือไม่


ใช่ MySQL ภายในแปลง bool เป็น tinyint(1) เนื่องจาก tinyint เป็นประเภทข้อมูลจำนวนเต็มที่น้อยที่สุด

คุณยังสามารถพูดได้ว่าบูลเป็นคำพ้องความหมายสำหรับ tinyint(1) ให้เราสร้างตารางตัวอย่างก่อน:

mysql> สร้างตาราง boolToTinyIntDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20), -> isAgeGreaterThan18 bool -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.02 วินาที)

ให้เราตรวจสอบคำอธิบายของตาราง:

mysql> desc boolToTinyIntDemo;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

<ก่อนหน้า>+--------------------+-------------+------+---- ------------------------+----------------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+--------------------+-------------+------+----- +----------------------+----------------+| รหัส | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อ | varchar(20) | ใช่ | | NULL | || isAgeGreaterThan18 | Tinyint(1) | ใช่ | | NULL | |+--------------------+-------------+------+----+ ---------+----------------+3 แถวในชุด (0.00 วินาที)

ดูเอาต์พุตตัวอย่างด้านบน คอลัมน์ประเภทข้อมูล isAgeGreaterThan18 จะถูกแปลงจาก bool เป็น tinyint(1) ภายใน

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก:

mysql> แทรกลงใน boolToTinyIntDemo(Name,isAgeGreaterThan18) ค่า ('Larry',true);Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงใน boolToTinyIntDemo(Name,isAgeGreaterThan18) ค่า ('Sam',false);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนจากตารางโดยใช้คำสั่ง select:

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้

<ก่อนหน้า>+----+-------+--------------------+| รหัส | ชื่อ | isAgeGreaterThan18 |+----+-------+--------------------+| 1 | แลร์รี่ | 1 || 2 | แซม | 0 |+----+-------+--------------------+2 แถวในชุด (0.00 วินาที)