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

แบบสอบถาม MySQL UPDATE ที่ id สูงสุดและฟิลด์เท่ากับตัวแปร?


ไวยากรณ์มีดังนี้

ปรับปรุง yourTableNameset yourColumnName1=yourValue where yourColumnName2=yourValue order by yourIdColumnName DESC LIMIT 1;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้

mysql> สร้างตาราง UpdateWithHighestDemo -> ( -> UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> UserStatus tinyint, -> UserRank int -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

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

แบบสอบถามมีดังนี้

mysql> แทรกลงในค่า UpdateWithHighestDemo (UserStatus, UserRank) (1,78); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน UpdateWithHighestDemo (UserStatus, UserRank) ค่า (0,118); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงใน UpdateWithHighestDemo (UserStatus, UserRank) ค่า (1,223); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.62 วินาที) mysql> แทรกลงใน UpdateWithHighestDemo (UserStatus, UserRank) ค่า (1,225); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงใน UpdateWithHighestDemo (UserStatus, UserRank) ค่า (0,227); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงใน UpdateWithHighestDemo (UserStatus, UserRank) ค่า (0,230); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.17 วินาที)

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

แบบสอบถามมีดังนี้

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

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

<ก่อนหน้า>+---------+-----------+----------+| รหัสผู้ใช้ | UserStatus | อันดับผู้ใช้ |+---------+-----------+----------+| 1 | 1 | 78 || 2 | 0 | 118 || 3 | 1 | 223 || 4 | 1 | 225 || 5 | 0 | 227 || 6 | 0 | 230 |+---------+-----------+----------+6 แถวในชุด (0.00 วินาที)

นี่คือคอลัมน์แบบสอบถามที่จะอัปเดต

mysql> อัปเดต UpdateWithHighestDemo-> ตั้งค่า UserStatus=1 โดยที่ UserRank=230 ลำดับโดย UserId DESC LIMIT 1; สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) แถวที่ตรงกัน:1 เปลี่ยนแล้ว:1 คำเตือน:0

ให้เราตรวจสอบและแสดงบันทึกจากตารางโดยใช้คำสั่ง select

แบบสอบถามมีดังนี้

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

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

<ก่อนหน้า>+---------+-----------+----------+| รหัสผู้ใช้ | UserStatus | อันดับผู้ใช้ |+---------+-----------+----------+| 1 | 1 | 78 || 2 | 0 | 118 || 3 | 1 | 223 || 4 | 1 | 225 || 5 | 0 | 227 || 6 | 1 | 230 |+---------+-----------+----------+6 แถวในชุด (0.00 วินาที)

ตอนนี้ถ้าคุณต้องการอัปเดตด้วย id สูงสุด คำสั่ง ORDER BY จะมีประโยชน์ ในเอาต์พุตตัวอย่างด้านบน 'UserId'=6 และ UserStatus สูงสุดคือ 1

ให้เราอัปเดต UserStatus เป็น 0

แบบสอบถามมีดังนี้

mysql> อัปเดต UpdateWithHighestDemo -> ตั้งค่า UserStatus=0 ลำดับโดย UserId DESC LIMIT 1; สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) แถวที่ตรงกัน:1 เปลี่ยนแล้ว:1 คำเตือน:0

ตรวจสอบบันทึกจากตารางโดยใช้คำสั่ง select

แบบสอบถามมีดังนี้

mysql> เลือก *จาก UpdateWithHighestDemo;+---------+------------+----------+| รหัสผู้ใช้ | UserStatus | อันดับผู้ใช้ |+---------+-----------+----------+| 1 | 1 | 78 || 2 | 0 | 118 || 3 | 1 | 223 || 4 | 1 | 225 || 5 | 0 | 227 || 6 | 0 | 230 |+---------+-----------+----------+6 แถวในชุด (0.00 วินาที)