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

รักษาลำดับในแบบสอบถาม MySQL“ IN” หรือไม่


คุณสามารถรักษาลำดับในการสืบค้น MySQL IN โดยใช้คำสั่ง field ไวยากรณ์มีดังนี้ −

เลือก *จาก yourTableName anyVariableName โดยที่ anyVariableName.yourColumnName in(value1,value2,......N)order by field(anyVariableName.yourColumnName,value1,value2,......N);

ในการใช้ไวยากรณ์ข้างต้น ให้เราสร้างตาราง -

mysql> สร้างตาราง OrderInDemo −> ( −> Id int, −> Name varchar(100), −> Age int −> );Query OK, 0 แถวได้รับผลกระทบ (1.24 วินาที)

ตอนนี้ให้เราแทรกบางระเบียนในตาราง แบบสอบถามเพื่อแทรกระเบียนมีดังนี้ −

mysql> แทรกลงในค่า OrderInDemo (90,'David',23);Query OK, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงในค่า OrderInDemo (9,'Sam',24); Query OK, 1 แถว ได้รับผลกระทบ (0.59 วินาที) mysql> แทรกลงในค่า OrderInDemo (10,'Carol',19); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที) mysql> แทรกลงในค่า OrderInDemo (1, 'John', 26); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.42 วินาที) mysql> แทรกลงในค่า OrderInDemo (3,'Johnson',25); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า OrderInDemo (2,'Ramit', 20); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

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

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

ต่อไปนี้คือผลลัพธ์ -

<ก่อนหน้า>+------+---------+------+| รหัส | ชื่อ | อายุ |+------+---------+------+| 90 | เดวิด | 23 || 9 | แซม | 24 || 10 | แครอล | 19 || 1 | จอห์น | 26 || 3 | จอห์นสัน | 25 || 2 | รมิท | 20 |+------+---------+------+6 แถวในชุด (0.00 วินาที)

ใช้ไวยากรณ์ที่เราพูดคุยกันในตอนเริ่มต้น เพื่อรักษาลำดับในการสืบค้น MySQL IN แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก OrderInDemo OD โดยที่ OD.Id ใน (10,1,3) −> เรียงลำดับตามฟิลด์ (OD.Id,10,1,3);

ต่อไปนี้เป็นผลลัพธ์ที่แสดงผลลัพธ์ตามลำดับที่ให้ไว้ในแบบสอบถาม −

<ก่อนหน้า>+------+---------+------+| รหัส | ชื่อ | อายุ |+------+---------+------+| 10 | แครอล | 19 || 1 | จอห์น | 26 || 3 | จอห์นสัน | 25 |+------+---------+------+3 แถวในชุด (0.00 วินาที)