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

ตัดทอนด้วยเงื่อนไขใน MySQL หรือไม่


ใน MySQL ไม่มีทางที่จะตัดทอนเงื่อนไขได้ คุณไม่สามารถใช้คำสั่งตัดทอนด้วยคำสั่ง where ได้

หากคุณต้องการเงื่อนไข ให้ใช้คำสั่ง delete -

ลบออกจากชื่อตารางของคุณในตำแหน่งที่คุณมีเงื่อนไข

ไวยากรณ์ข้างต้นใช้ได้ แต่ถ้าคุณต้องการวิธีแก้ปัญหาที่เร็วกว่า DELETE นั้นไม่ดีเมื่อเปรียบเทียบกับ Truncate ข้อดีของการตัดทอนคือไม่เขียนลงในบันทึก

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

mysql> สร้างตาราง DeleteDemo -> ( -> Id int, -> Name varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.22 วินาที)

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

mysql> แทรกลงในค่า DeleteDemo (101,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า DeleteDemo (102,'Sam'); Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที )mysql> แทรกลงในค่า DeleteDemo (103, 'Bob'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DeleteDemo (104, 'ไมค์'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DeleteDemo (105,'John');Query OK, 1 แถวได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า DeleteDemo (106,'Maria'); Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรก ลงในค่า DeleteDemo (107,'Johnson');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 101 | แครอล || 102 | แซม || 103 | บ๊อบ || 104 | ไมค์ || 105 | จอห์น || 106 | มาเรีย || 107 | Johnson |+------+---------+7 แถวในชุด (0.00 วินาที)

ตอนนี้คุณสามารถใช้คำสั่ง delete ได้ แต่นั่นจะไม่ตัดทอนด้วย where clause แบบสอบถามเพื่อลบระเบียนออกจากตารางโดยใช้ประโยคดังต่อไปนี้ -

mysql> ลบจาก DeleteDemo โดยที่ Id>104;Query OK, 3 แถวได้รับผลกระทบ (0.13 วินาที)

ให้เราตรวจสอบข้อมูลตารางอีกครั้งโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

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

ผลลัพธ์

<ก่อนหน้า>+------+-------+| รหัส | ชื่อ |+------+-------+| 101 | แครอล || 102 | แซม || 103 | บ๊อบ || 104 | ไมค์ |+------+-------+4 แถวในชุด (0.00 วินาที)

ดูผลลัพธ์ตัวอย่างด้านบน ระเบียนทั้งหมดที่มากกว่า 104 จะถูกลบออกจากตาราง