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

อัปเดตเพียงค่าเดียวจากตาราง MySQL โดยเลือกจากตารางเดียวกันที่เรียงลำดับจากมากไปน้อยหรือไม่


สำหรับสิ่งนี้ ให้ใช้ ORDER BY DESC กับ LIMIT clause ลำดับ ORDER BY DESC เรียงลำดับจากมากไปน้อย โดยที่ LIMIT กำหนดจำนวนเร็กคอร์ดที่คุณต้องการ ที่นี่ เราจะตั้งค่า LIMIT 1 เนื่องจากเราต้องการเพียงแผ่นเดียว ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( StudentName varchar(100), StudentMarks int);Query OK, 0 แถวได้รับผลกระทบ (0.54 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Chris', 45); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('Bob',78); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า DemoTable ('Mike',34); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable ('Robert', 67); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) 

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

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

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

<ก่อนหน้า>+-------------+--------------+| ชื่อนักเรียน | StudentMarks |+-------------+--------------+| คริส | 45 || บ๊อบ | 78 || ไมค์ | 34 || โรเบิร์ต | 67 |+-------------+-------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตค่าเดียวจากตาราง MySQL ที่เรียงลำดับจากมากไปน้อย -

mysql> อัปเดต DemoTableset StudentName='Adam'order โดย StudentMarks DESC LIMIT 1; สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) แถวที่ตรงกัน:1 เปลี่ยนแล้ว:1 คำเตือน:0

ให้เราตรวจสอบบันทึกตารางอีกครั้ง -

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

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

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