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

ลบเฉพาะแถวที่ระบุในตารางด้วย MySQL


หากต้องการลบเฉพาะแถวที่ระบุ ให้ใช้ MySQL NOT IN() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1830 ( StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20) )AUTO_INCREMENT=101;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

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

mysql> แทรกลงในค่า DemoTable1830(StudentName) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> แทรกลงในค่า DemoTable1830 (StudentName) ('David'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.00 วินาที) mysql> แทรกลงในค่า DemoTable1830 (StudentName) ('Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1830 (StudentName) ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.00 วินาที) mysql> แทรกลงในค่า DemoTable1830 (StudentName) ('Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 101 | คริส || 102 | เดวิด || 103 | ไมค์ || 104 | แซม || 105 | Bob |+-----------+-------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะลบเฉพาะแถวที่เฉพาะเจาะจง -

mysql> ลบออกจาก DemoTable1830 โดยที่ StudentId ไม่อยู่ใน('101','103','105');แบบสอบถามตกลง ได้รับผลกระทบ 2 แถว (0.00 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 101 | คริส || 103 | ไมค์ || 105 | Bob |+-----------+-------------+3 แถวในชุด (0.00 วินาที)