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

จะรวมสตริงที่คั่นด้วยเครื่องหมายจุลภาค (สตริงที่มีตัวเลข) ใน MySQL ได้อย่างไร


คุณสามารถสร้างฟังก์ชันแบบกำหนดเองเพื่อรวมสตริงที่คั่นด้วยเครื่องหมายจุลภาคใน MySQL ให้เราสร้างตารางก่อน ที่นี่ เรามีคอลัมน์ varchar ซึ่งเราจะเพิ่มตัวเลขในรูปแบบของสตริง -

mysql> สร้างตาราง DemoTable -> ( -> ListOfValues ​​varchar(50) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('20,10,40,50,60'); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

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

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

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

<ก่อนหน้า>+----------------+| ListOfValues ​​|+----------------+| 20,10,40,50,60 |+----------------+1 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อสร้างฟังก์ชัน -

mysql> DELIMITER ??mysql> สร้างฟังก์ชัน totalSumInCommaSeparatedString(input varchar(50)) -> คืนค่า int -> กำหนด -> ไม่มี sql -> เริ่มต้น -> ประกาศ TotalSum int ค่าเริ่มต้น 0; -> while instr(input, ",")> 0 do -> set TotalSum =totalSum + substring_index(input, ",", 1); -> ตั้งค่าอินพุต =กลาง (อินพุต, อินพุต, อินพุต, ",") + 1); -> สิ้นสุดในขณะที่; -> ส่งคืนผลรวม + อินพุต; -> สิ้นสุด ??แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.17 วินาที) mysql> DELIMITER;

ให้เราตรวจสอบฟังก์ชันด้านบนเพื่อรับสตริงที่คั่นด้วยเครื่องหมายจุลภาคใน MySQL -

mysql> เลือก totalSumInCommaSeparatedString(ListOfValues) เป็น TotalSum จาก DemoTable

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

<ก่อนหน้า>+----------+| ผลรวมทั้งหมด |+----------+| 180 |+----------+1 แถวในชุด (0.00 วินาที)