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

เรียงลำดับตามฟังก์ชันของสองคอลัมน์ในแบบสอบถาม MySQL เดียว


เรามาสร้างตารางกันก่อน

mysql> สร้าง table orderByAFunctionDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> FirstNumber int, -> SecodNumber int -> );Query OK, 0 แถวได้รับผลกระทบ (0.44 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า orderByAFunctionDemo (FirstNumber,SecodNumber) (10,4); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า orderByAFunctionDemo (FirstNumber,SecodNumber) (45,78); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า orderByAFunctionDemo (FirstNumber,SecodNumber) (23,10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า orderByAFunctionDemo (FirstNumber, SecodNumber) (67,237); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)mysql> แทรกลงในค่า orderByAFunctionDemo (FirstNumber,SecodNumber) (12,90); สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+-------------+-------------+| รหัส | หมายเลขแรก | SecondNumber|+----+-------------+-------------+| 1 | 10 | 4 || 2 | 45 | 78 || 3 | 23 | 10 || 4 | 67 | 237 || 5 | 12 | 90 |+----+--------------------+-------------+5 แถวในชุด (0.00 วินาที)

นี่คือคิวรีที่จะเรียงลำดับตามฟังก์ชันของสองคอลัมน์ แบบสอบถามมีดังนี้ −

mysql> เลือก (4*FirstNumber+5*SecondNumber) เป็น Calculation -> from orderByAFunctionDemo -> order by Calculation desc;

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+-------------+| การคำนวณ |+-------------+| 1453 || 570 || 498 || 142 || 60 |+-------------+5 แถวในชุด (0.00 วินาที)