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

ทำไมเราถึงพูดถึงใน MySQL WHERE 1=0?


เงื่อนไข 1=0 สามารถใช้เพื่อหยุดการสืบค้นจากการส่งคืนแถวใดๆ คืนค่าชุดว่าง

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

SELECT *FROM yourTableName WHERE 1=0;

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

mysql> สร้างตาราง ConditionDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อ varchar(10), -> คีย์หลัก (Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.59 วินาที) 

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

mysql> แทรกลงในค่า ConditionDemo (ชื่อ) ('Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงใน ConditionDemo (ชื่อ) ค่า ('แซม'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า ConditionDemo (ชื่อ) ('Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า ConditionDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.12 วินาที) mysql> แทรกลงในค่า ConditionDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงใน ConditionDemo (ชื่อ) ค่า ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.10 วินาที)

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

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

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

<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | แลร์รี่ || 2 | แซม || 3 | ไมค์ || 4 | แครอล || 5 | จอห์น || 6 | Bob |+----+-------+6 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อป้องกันไม่ให้การสืบค้นกลับแถวใด ๆ

mysql> เลือก *จาก ConditionDemo โดยที่ 1=0; ชุดว่าง (0.00 วินาที)