นิพจน์ทั่วไปของฐานข้อมูล MySQL ตรงกันอย่างไร MySQL regexp ชอบการใช้งาน

ฐานข้อมูล MySQLนิพจน์ทั่วไปตรงกันอย่างไรMySQL regexp เช่นการใช้งาน

นิพจน์ทั่วไปของ MySQL

ในบทที่แล้ว เราได้เห็นแล้วว่า MySQL สามารถ ชอบ...% สำหรับการจับคู่ที่คลุมเครือ

MySQL ยังรองรับการจับคู่นิพจน์ทั่วไปอื่นๆ ด้วย ตัวดำเนินการ REGEXP ใช้ใน MySQL สำหรับการจับคู่นิพจน์ทั่วไป

หากคุณรู้จัก PHP หรือ Perl ก็ค่อนข้างตรงไปตรงมา เนื่องจากการจับคู่นิพจน์ทั่วไปของ MySQL นั้นคล้ายคลึงกับสคริปต์เหล่านี้

รูปแบบปกติในตารางต่อไปนี้สามารถใช้กับตัวดำเนินการ REGEXP

โหมดลักษณะ
^ตรงกับจุดเริ่มต้นของสตริงอินพุต^ ยังตรงกับตำแหน่งหลัง '\n' หรือ '\r' หากมีการตั้งค่าคุณสมบัติ Multiline ของวัตถุ RegExp
$จับคู่ส่วนท้ายของสตริงอินพุตหากมีการตั้งค่าคุณสมบัติ Multiline ของวัตถุ RegExp $ จะตรงกับตำแหน่งก่อนหน้า '\n' หรือ '\r' ด้วย
.จับคู่อักขระเดี่ยวใดๆ ยกเว้น "\n"หากต้องการจับคู่อักขระใดๆ รวมถึง '\n' ให้ใช้รูปแบบเช่น '[.\n]'
[... ]คอลเลกชันของตัวละครจับคู่อักขระที่มีอยู่ตัวใดตัวหนึ่งตัวอย่างเช่น '[abc]' จะตรงกับ "plai'a' ใน n".
-ชุดอักขระเชิงลบจับคู่อักขระใด ๆ ที่ไม่มีอยู่ตัวอย่างเช่น '[^abc]' จะตรงกับ 'p' ใน "ธรรมดา"
p1|p2|p3จับคู่ p1 หรือ p2 หรือ p3ตัวอย่างเช่น 'z|food' จะจับคู่กับ "z" หรือ "food" '(z|f)ood' ตรงกับ "zood" หรือ "food"
*จับคู่นิพจน์ย่อยก่อนหน้าเป็นศูนย์หรือมากกว่าตัวอย่างเช่น zo* จะจับคู่กับ "z" เช่นเดียวกับ "zoo" * เทียบเท่ากับ {0,}
+จับคู่นิพจน์ย่อยก่อนหน้าอย่างน้อยหนึ่งครั้งตัวอย่างเช่น 'zo+' จะจับคู่กับ "zo" และ "zoo" แต่ไม่ตรงกับ "z" + เทียบเท่ากับ {1,}
{NS}n เป็นจำนวนเต็มที่ไม่เป็นลบตรงกันทั้งหมด n ครั้งตัวอย่างเช่น 'o{2}' จะไม่ตรงกับ 'o' ใน "Bob" แต่จะตรงกับ o ทั้งสองใน "food"
{น,ม}ทั้ง m และ n เป็นจำนวนเต็มที่ไม่ติดลบ โดยที่ n <= mตรงกันอย่างน้อย n ครั้งและมากที่สุด m ครั้ง

ตัวอย่าง

หลังจากที่เข้าใจข้อกำหนดทั่วไปข้างต้นแล้ว เราก็สามารถเขียนคำสั่ง SQL ด้วยนิพจน์ทั่วไปตามข้อกำหนดของเราเองได้ด้านล่างเราจะแสดงตัวอย่างเล็ก ๆ น้อย ๆ (ชื่อตาราง: person_tbl ) เพื่อทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น:

ค้นหาข้อมูลทั้งหมดที่ขึ้นต้นด้วย 'st' ในฟิลด์ชื่อ:

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';

ค้นหาข้อมูลทั้งหมดที่ลงท้ายด้วย 'ตกลง' ในฟิลด์ชื่อ:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';

ค้นหาข้อมูลทั้งหมดที่มีสตริง 'mar' ในฟิลด์ชื่อ:

mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';

ค้นหาข้อมูลทั้งหมดในฟิลด์ชื่อที่ขึ้นต้นด้วยสระหรือลงท้ายด้วยสตริง 'ok':

mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "จะจับคู่นิพจน์ทั่วไปของฐานข้อมูล MySQL ได้อย่างไร? MySQL regexp เช่นการใช้งาน" จะช่วยคุณได้

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-492.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注