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

อะไรคือความแตกต่างระหว่างตัวดำเนินการ AND, OR ใน MySQL ในขณะที่ดึงแถว?


ความแตกต่างระหว่าง AND หรือ OR คือ AND ประเมินทั้งสองเงื่อนไขต้องเป็นจริงเพื่อให้เงื่อนไขโดยรวมเป็นจริง OR ประเมินหนึ่งเงื่อนไขจะต้องเป็นจริงเพื่อให้เงื่อนไขโดยรวมเป็นจริง

ให้เราสร้างตาราง -

mysql> สร้างตาราง demo70−> (−> id int ไม่ใช่ null auto_increment คีย์หลัก,−> name varchar(20),−> age int−> );Query OK, 0 แถวได้รับผลกระทบ (0.67 วินาที)

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

mysql> แทรกลงในค่า demo70(ชื่อ,อายุ) ('John',23);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า demo70 (ชื่อ, อายุ) ('David',21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที)mysql> แทรกลงใน demo70 (ชื่อ, อายุ) ค่า ('ไมค์', 22); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน demo70 (ชื่อ, อายุ) values('Chris',20);ตกลง, 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงใน demo70(ชื่อ,อายุ) ค่า('John',24);แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกค่า demo70(name,age)('David',22);Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)

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

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

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

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

ต่อไปนี้เป็นแบบสอบถามตัวดำเนินการ OR -

mysql> เลือก *จาก demo70−> โดยที่ name="John" หรือ age=22;

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

<ก่อนหน้า>+----+---------+------+| id | ชื่อ | อายุ |+----+-------+------+| 1 | จอห์น | 23 || 3 | ไมค์ | 22 || 5 | จอห์น | 24 || 6 | เดวิด | 22 |+----+-------+------+4 แถวในชุด (0.00 วินาที)

ในผลลัพธ์ OR หากชื่อคือ John เงื่อนไขจะเป็นจริง ถ้าแถวไหนอายุครบ 22 ปี แท้แน่นอน

ให้เราดูผลลัพธ์ของตัวดำเนินการ AND

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

mysql> select *from demo70−> where name="John" and age=22;

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

ชุดเปล่า (0.00 วินาที)

AND ให้ชุดว่างเพราะไม่มีแถวใดแถวหนึ่งที่มีชื่อเหมือนกันว่า John และอายุ 22 ปี