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

MySQL ไม่ได้ใส่ข้อมูลไบนารีอย่างถูกต้อง? ควรใช้ข้อมูลประเภทใด


สำหรับสิ่งนี้ ให้ใช้ชนิดข้อมูล BIT ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable(binaryValue BIT(5)); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.83 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable(10); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า DemoTable(15); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.15 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ ตอนนี้คุณสามารถดูบันทึกไม่สามารถมองเห็นได้ -

<ก่อนหน้า>+-------------+| binaryValue |+-------------+| || |+-------------+2 แถวในชุด (0.00 วินาที)

หากต้องการแสดงบันทึกข้างต้น (ข้อมูลไบนารี) คุณต้องใช้ bin() -

mysql> เลือก bin(binaryValue) จาก DemoTable;

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

<ก่อนหน้า>+-----------------+| bin(binaryValue) |+-----------------+| 1010 || 1111 |+-----------------+2 แถวในชุด (0.00 วินาที)

เรามาดูตัวอย่างอื่นกันดีกว่า

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกข้อมูลไบนารี แต่ค่าไม่สามารถมองเห็นได้เมื่อใช้การเลือก -

mysql> แทรกลงใน DemoTable VALUES (b'1010'),(b'1111');Query OK, 2 แถวได้รับผลกระทบ (0.52 วินาที)ระเบียน:2 รายการซ้ำ:0 คำเตือน:0mysql> เลือก *จาก DemoTable;+- --------------+| binaryValue |+-------------+| || | | || |+-------------+4 แถวในชุด (0.00 วินาที)

ให้เราตรวจสอบระเบียนของตารางอีกครั้งและใช้ bin() เพื่อแสดง −

mysql> เลือก bin(binaryValue) จาก DemoTable;

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

<ก่อนหน้า>+-----------------+| bin(binaryValue) |+-----------------+| 1010 || 1111 || 1010 || 1111 |+------------------+4 แถวในชุด (0.00 วินาที)