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

MySQL group_concat เพื่อเพิ่มตัวคั่นสำหรับช่องว่าง?


สำหรับสิ่งนี้ คุณสามารถใช้ replace() ร่วมกับ group_concat() สำหรับฟิลด์ว่าง เรากำลังแสดงเครื่องหมายจุลภาคเป็นตัวคั่น ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( Id int, Number varchar(100)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.03 วินาที)

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

mysql> แทรกลงในค่า DemoTable (10,'456'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า DemoTable (11,'345'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.28 วินาที )mysql> แทรกลงในค่า DemoTable (10,''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.63 วินาที) mysql> แทรกลงในค่า DemoTable (10,'278'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.35 วินาที) mysql> แทรกลงในค่า DemoTable (10,''); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.37 วินาที) mysql> แทรกลงในค่า DemoTable (10,'789'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.47 วินาที)

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

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

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

<ก่อนหน้า>+------+---------+| รหัส | เบอร์ |+------+---------+| 10 | 456 || 11 | 345 || 10 | || 10 | 278 || 10 | || 10 | 789 |+------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเพิ่มตัวคั่นสำหรับช่องว่าง -

mysql> เลือก Id,replace(group_concat(Number),',,',',') จากกลุ่ม DemoTable ตามรหัส

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

<ก่อนหน้า>+------+-------------------------------------- -+| รหัส | แทนที่ (group_concat(หมายเลข),',,',',') |+------+------------------------- ---------------+| 10 | 456,278,789 || 11 | 345 |+------+ ---------------------------------------- +2 แถวในชุด (0.00 วินาที)