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

ใช้ GROUP_CONCAT () บนบิตฟิลด์ส่งคืนขยะใน MySQL หรือไม่ จะแก้ไขอย่างไร?


ในการแก้ไข ให้ใช้ group_concat() โดยเติม 0 ด้วยคอลัมน์ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1856 ( Id int, Value bit(1) ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1856 (101,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1856 (102,0) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> ลงในค่า DemoTable1856 (101,0) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1856 (102,1); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1856 (101, 0);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+------+-------+| รหัส | ความคุ้มค่า |+------+-------+| 101 | || 102 | || 101 | || 102 | || 101 | |+------+-------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อใช้ group_concat() บนบิตฟิลด์และหลีกเลี่ยงการคืนค่าขยะ -

mysql> เลือก group_concat(Value+0) จากกลุ่ม DemoTable1856 ตาม Id;

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

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