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

จะอัปเดตหลายแถวโดยใช้ประโยค WHERE เดียวใน MySQL ได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้ MySQL IN() ให้เราสร้าง −

. ก่อน
mysql> สร้างตาราง DemoTable1420 -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> FirstName varchar(20), -> LastName varchar(20), -> Age int -> ); แบบสอบถามตกลง 0 แถว ได้รับผลกระทบ (1.12 วินาที)

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

mysql> แทรกลงใน DemoTable1420(FirstName,LastName,Age) values('Chris','Brown',23);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน DemoTable1420(FirstName,LastName,Age) ค่า ('David', 'Miller', 22); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงใน DemoTable1420 (ชื่อ, นามสกุล, อายุ) ค่า ('John', 'Smith', 24); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable1420 (FirstName,LastName,Age) ('John','Doe',21); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.43 วินาที)mysql> แทรกลงใน DemoTable1420 (FirstName ,LastName,Age) values('Adam','Smith',25);ตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้ตัวเลือก -

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

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

<ก่อนหน้า>+----+-----------+----------+------+| รหัส | ชื่อจริง | นามสกุล | อายุ |+----+-----------+----------+------+| 1 | คริส | สีน้ำตาล | 23 || 2 | เดวิด | มิลเลอร์ | 22 || 3 | จอห์น | สมิ ธ | 24 || 4 | จอห์น | โด | 21 || 5 | อดัม | สมิ ธ | 25 |+----+-----------+----------+------+5 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่ออัปเดตหลายแถวโดยใช้ประโยคเดียวโดยที่ -

mysql> อัปเดต DemoTable1420 -> ตั้งค่า FirstName='Carol',LastName='Taylor' -> where Id IN(1,3,4,5);Query OK, 4 แถวได้รับผลกระทบ (0.42 วินาที)แถวที่ตรงกัน:4 เปลี่ยนแล้ว:4 คำเตือน:0

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

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

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

<ก่อนหน้า>+----+-----------+----------+------+| รหัส | ชื่อจริง | นามสกุล | อายุ |+----+-----------+----------+------+| 1 | แครอล | เทย์เลอร์ | 23 || 2 | เดวิด | มิลเลอร์ | 22 || 3 | แครอล | เทย์เลอร์ | 24 || 4 | แครอล | เทย์เลอร์ | 21 || 5 | แครอล | เทย์เลอร์ | 25 |+----+-----------+----------+------+5 แถวในชุด (0.00 วินาที)