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

MySQL ชอบใน ()?


คุณสามารถใช้ MySQL Like IN() ด้วย Regular Expression (regexp) ได้เช่นกัน ไวยากรณ์มีดังนี้ −

เลือก *จาก yourTableName โดยที่ yourColumName regexp 'value1|value2|value3……|valueN';

เพื่อให้เข้าใจตรรกะข้างต้น คุณต้องสร้างตาราง ให้เราสร้างตารางก่อน -

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

แทรกระเบียนบางส่วนลงในตาราง แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า INDemo (100, 'John'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า INDemo (104,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที )mysql> แทรกลงในค่า INDemo (108, 'David'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า INDemo (112, 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า INDemo (116, 'Johnson'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที) mysql> แทรกลงในค่า INDemo (120, 'แซม'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

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

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

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

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 100 | จอห์น | | 104 | แครอล || 108 | เดวิด || 112 | สมิธ || 116 | จอห์นสัน || 120 | แซม |+------+---------+6 แถวในชุด (0.00 วินาที)

ใช้ regexp ที่ทำงานเหมือน IN() คุณสามารถใช้ไวยากรณ์ข้างต้นซึ่งฉันได้กล่าวถึงในตอนต้น แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก INDemo โดยที่ Id regexp '112|116|100';

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

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 100 | จอห์น || 112 | สมิธ || 116 | Johnson |+------+---------+3 แถวในชุด (0.21 วินาที)

คุณจะได้ผลลัพธ์เดียวกันกับ IN() ตอนนี้ให้เราตรวจสอบด้วยความช่วยเหลือของ IN() แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก INDemo โดยที่ Id IN (112,116,100);

นี่คือผลลัพธ์

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 100 | จอห์น || 112 | สมิธ || 116 | Johnson |+------+---------+3 แถวในชุด (0.00 วินาที)

ดังที่คุณเห็นในผลลัพธ์ข้างต้น เราได้รับผลลัพธ์เช่นเดียวกัน