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

แบบสอบถาม MySQL เพื่อสร้างดัชนีแถว (อันดับ) ในคำสั่ง SELECT?


ในการสร้างดัชนีแถว ใช้ ROW_NUMBER() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( ชื่อ varchar(40)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.49 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรก ลงในค่า DemoTable ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า DemoTable ('Robert'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Robert ');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable ('Adam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Adam'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)mysql> แทรกลงในค่า DemoTable ('Adam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DemoTable ('Adam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที )

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

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

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

<ก่อนหน้า>+---------+| ชื่อ |+-------+| คริส || คริส || คริส || โรเบิร์ต || โรเบิร์ต || อดัม || อดัม || อดัม || อดัม |+--------+9 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างดัชนีแถวในคำสั่ง MySQL SELECT ที่นี่เราได้กำหนดอันดับสำหรับชื่อที่ซ้ำกัน -

mysql> เลือก Name,row_number() เหนือ (แบ่งพาร์ติชั่นตามชื่อ) เป็น `Rank` จาก DemoTable;

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

<ก่อนหน้า>+---------+------+| ชื่อ | อันดับ |+---------+------+| อดัม | 1 || อดัม | 2 || อดัม | 3 || อดัม | 4 || คริส | 1 || คริส | 2 || คริส | 3 || โรเบิร์ต | 1 || โรเบิร์ต | 2 |+---------+------+9 แถวในชุด (0.00 วินาที)