สำหรับสิ่งนี้ ให้ใช้คำสั่ง CASE ร่วมกับ FIND_IN_SET() ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable1629 -> ( -> เดือน varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert
mysql> แทรกลงในค่า DemoTable1629 ('2,4,6'); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable1629 ('1,3,5,12'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable1629 ('7,8,9,10'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก * จาก DemoTable1629;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+----------+| เดือน |+----------+| 2,4,6 || 1,3,5,12 || 7,8,9,10 |+----------+3 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อแทนที่ตัวเลขในผลลัพธ์ที่คั่นด้วยเครื่องหมายจุลภาค -
mysql> เลือก trim(ต่อท้าย ',' จาก concat( -> CASE WHEN FIND_IN_SET(1, เดือน) แล้ว 'มกราคม,' ELSE '' END, -> CASE WHEN FIND_IN_SET(2, เดือน) แล้ว 'กุมภาพันธ์' ELSE '' END, -> CASE WHEN FIND_IN_SET(3, Month) แล้ว 'March,' ELSE '' END, -> CASE WHEN FIND_IN_SET(4, Month) แล้ว 'เมษายน' ELSE '' END, -> CASE WHEN FIND_IN_SET (5, เดือน) จากนั้น 'พฤษภาคม' ELSE '' END, -> CASE WHEN FIND_IN_SET(6, Month) แล้ว 'มิถุนายน' ELSE '' END, -> CASE WHEN FIND_IN_SET(7, Month) แล้ว 'กรกฎาคม' ELSE '' END, -> CASE WHEN FIND_IN_SET(8, Month) แล้ว 'August,' ELSE '' END, -> CASE WHEN FIND_IN_SET(9, Month) จากนั้น 'September,' ELSE '' END, -> CASE WHEN FIND_IN_SET (10,เดือน) จากนั้น 'ตุลาคม' ELSE '' END, -> CASE WHEN FIND_IN_SET (11,เดือน) แล้ว 'พฤศจิกายน' ELSE '' END, -> CASE WHEN FIND_IN_SET (12,เดือน) แล้ว 'ธันวาคม' ELSE '' END -> )) -> จาก DemoTable1629;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อน>+--------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------+| ตัดแต่ง (ต่อท้าย ',' จาก concat ( กรณีเมื่อ FIND_IN_SET (1 เดือน) จากนั้น 'มกราคม,' ELSE '' END, กรณีเมื่อ FIND_IN_SET(2, เดือน) จากนั้น 'กุมภาพันธ์' ELSE '' END, กรณีเมื่อ FIND_IN_SET(3 , เดือน) จากนั้น 'มีนา,' ELSE '' END, CASE WHEN FIND_IN_SET(4, Mon |+----------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------+| กุมภาพันธ์ เมษายน มิถุนายน || มกราคม มีนาคม พฤษภาคม ธันวาคม || กรกฎาคม สิงหาคม กันยายน ตุลาคม |+--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------+3 แถวในชุด (0.04 วินาที)