ข้อ SQLite Glob
SQLite ผู้ประกอบการGLOB ถูกนำมาใช้เพื่อให้ตรงกับค่าข้อความที่ระบุรูปแบบสัญลักษณ์แทนหากการแสดงออกการค้นหาและจับคู่รูปแบบการแสดงออกของผู้ประกอบการ GLOB ผลตอบแทนจริง (จริง) ซึ่งเป็น 1 และผู้ประกอบการเหมือนที่แตกต่างกัน GLOB เป็นกรณีที่สำคัญสำหรับสัญลักษณ์ต่อไปนี้ซึ่งเป็นไปตามไวยากรณ์ยูนิกซ์
เครื่องหมายดอกจัน (*)
เครื่องหมายคำถาม (?)
เครื่องหมายดอกจัน (*) หมายถึงศูนย์หนึ่งหรือมากกว่าตัวเลขหรือตัวอักษร เครื่องหมายคำถาม (?) หมายถึงตัวเลขหลักเดียวหรือตัวอักษร สัญลักษณ์เหล่านี้สามารถนำมาใช้ในการรวมกัน
ไวยากรณ์
? * และไวยากรณ์พื้นฐานจะเป็นดังนี้:
เลือกจาก table_name WHERE GLOB คอลัมน์ "XXXX * ' หรือ เลือกจาก table_name WHERE GLOB คอลัมน์ "* * * * * * * * XXXX ' หรือ เลือกจาก table_name WHERE GLOB คอลัมน์ "XXXX? หรือ เลือกจาก table_name WHERE GLOB คอลัมน์ '? XXXX' หรือ เลือกจาก table_name WHERE GLOB คอลัมน์ '? XXXX? หรือ เลือกจาก table_name WHERE GLOB คอลัมน์ '????'
คุณสามารถใช้และหรือหรือผู้ประกอบการที่จะรวมจำนวน n เงื่อนไข นี่ XXXX สามารถเป็นตัวเลขหรือสตริงใด ๆ ค่า
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงข้อ GLOB สถานที่ที่แตกต่างกันด้วย '*' และผู้ประกอบการ '?':
语句 | 描述 |
---|---|
WHERE SALARY GLOB '200*' | 查找以 200 开头的任意值 |
WHERE SALARY GLOB '*200*' | 查找任意位置包含 200 的任意值 |
WHERE SALARY GLOB '?00*' | 查找第二位和第三位为 00 的任意值 |
WHERE SALARY GLOB '2??' | 查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY GLOB '*2' | 查找以 2 结尾的任意值 |
WHERE SALARY GLOB '?2*3' | 查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY GLOB '2???3' | 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值 |
ลองมาเป็นตัวอย่างในทางปฏิบัติ บริษัท ตารางสมมติว่ามีการบันทึกต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 1 เปาโล 32 20,000.0 แคลิฟอร์เนีย 2 อัลเลน 25 15,000.0 เท็กซัส เท็ดดี้ 3 23 นอร์เวย์ 20,000.0 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 85,000.0 เท็กซัส 6 คิม 22 ใต้ 45,000.0 ฮอลล์ 7 เจมส์ 24 ฮุสตัน 10,000.0
นี่คือตัวอย่างที่แสดงให้เห็นว่ามันอายุตาราง บริษัท 2 ระเบียนทั้งหมดที่ขึ้นต้นด้วย:
SQLite> * เลือกจาก บริษัท AGE GLOB '2 *';
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 2 อัลเลน 25 15,000.0 เท็กซัส เท็ดดี้ 3 23 นอร์เวย์ 20,000.0 4 มาร์ครวย 25-Mond 65,000.0 5 ดาวิด 27 85,000.0 เท็กซัส 6 คิม 22 ใต้ 45,000.0 ฮอลล์ 7 เจมส์ 24 ฮุสตัน 10,000.0
นี่คือตัวอย่างจะแสดงตาราง บริษัท ข้อความที่อยู่มียัติภังค์ (-) ระเบียนทั้งหมด:
SQLite> SELECT * จาก บริษัท ที่อยู่ GLOB '* - *';
นี้ก่อให้เกิดผลลัพธ์ต่อไปนี้:
ID NAME เงินเดือนอายุที่อยู่ ---------- ---------- ---------- ---------- ---------- 4 มาร์ครวย 25-Mond 65,000.0 6 คิม 22 ใต้ 45,000.0 ฮอลล์