คุณสามารถใช้ 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 วินาที)ดังที่คุณเห็นในผลลัพธ์ข้างต้น เราได้รับผลลัพธ์เช่นเดียวกัน