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

เรียงลำดับตามค่าตัวเลขจากบันทึกสตริงที่คั่นด้วยตัวเลขเช่น CSE 15, CSE 11 เป็นต้น?


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1969 ( BranchCode varchar(20) );เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1969 ('CSE 101'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1969 ('CSE 11'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1969 ('CSE 15'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1969 ('CSE 6'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงใน DemoTable1969 ค่า ('CSE 201'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1969 ('CSE 110'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+-----------+| BranchCode |+-----------+| CSE 101 || CSE 11 || CSE 15 || ป.6 || CSE 201 || CSE 110 |+-----------+6 แถวในชุด (0.00 วินาที)

นี่คือการสอบถามเพื่อเรียงลำดับตามค่าตัวเลขจากบันทึกสตริงที่คั่นด้วยตัวเลข -

mysql> เลือก * จากคำสั่ง DemoTable1969 โดย CAST(SUBSTRING(BranchCode,LOCATE(' ',BranchCode)+1) AS SIGNED) DESC;

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

<ก่อนหน้า>+-----------+| BranchCode |+-----------+| CSE 201 || CSE 110 || CSE 101 || CSE 15 || CSE 11 || CSE 6 |+------------+6 แถวในชุด (0.00 วินาที)