SQLite - ข้อ GLOB
SQLite GLOBตัวดำเนินการใช้เพื่อจับคู่เฉพาะค่าข้อความกับรูปแบบโดยใช้สัญลักษณ์แทน หากนิพจน์การค้นหาสามารถจับคู่กับนิพจน์รูปแบบได้ตัวดำเนินการ GLOB จะคืนค่าจริงซึ่งก็คือ 1 ซึ่งแตกต่างจากตัวดำเนินการ LIKE GLOB จะคำนึงถึงขนาดตัวพิมพ์และเป็นไปตามไวยากรณ์ของ UNIX สำหรับการระบุสัญลักษณ์แทนต่อไปนี้
- เครื่องหมายดอกจัน (*)
- เครื่องหมายคำถาม (?)
เครื่องหมายดอกจัน (*) หมายถึงตัวเลขหรืออักขระที่เป็นศูนย์หรือหลายตัว เครื่องหมายคำถาม (?) แสดงถึงตัวเลขหรืออักขระตัวเดียว
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์พื้นฐานของ * และ ?.
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or 
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'คุณสามารถรวม Nจำนวนเงื่อนไขที่ใช้ตัวดำเนินการ AND หรือ OR ในที่นี้ XXXX อาจเป็นค่าตัวเลขหรือสตริงก็ได้
ตัวอย่าง
ตารางต่อไปนี้แสดงตัวอย่างจำนวนหนึ่งที่แสดงว่าส่วนไหนที่มีคำสั่ง LIKE ต่างกันด้วย '*' และ '?' ผู้ประกอบการ
| ซีเนียร์ | คำชี้แจงและคำอธิบาย | 
|---|---|
| 1 | WHERE SALARY GLOB '200*' ค้นหาค่าใด ๆ ที่เริ่มต้นด้วย 200 | 
| 2 | WHERE SALARY GLOB '*200*' ค้นหาค่าใด ๆ ที่มี 200 ในตำแหน่งใด ๆ | 
| 3 | WHERE SALARY GLOB '?00*' ค้นหาค่าใด ๆ ที่มี 00 ในตำแหน่งที่สองและสาม | 
| 4 | WHERE SALARY GLOB '2??' ค้นหาค่าใด ๆ ที่ขึ้นต้นด้วย 2 และมีความยาวอย่างน้อย 3 อักขระ | 
| 5 | WHERE SALARY GLOB '*2' ค้นหาค่าใด ๆ ที่ลงท้ายด้วย 2 | 
| 6 | WHERE SALARY GLOB '?2*3' ค้นหาค่าใด ๆ ที่มี 2 ในตำแหน่งที่สองและลงท้ายด้วย 3 | 
| 7 | WHERE SALARY GLOB '2???3' ค้นหาค่าใด ๆ ในตัวเลขห้าหลักที่ขึ้นต้นด้วย 2 และลงท้ายด้วย 3 | 
ให้เรายกตัวอย่างจริงพิจารณาตาราง COMPANY พร้อมบันทึกต่อไปนี้ -
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0ต่อไปนี้เป็นตัวอย่างซึ่งจะแสดงระเบียนทั้งหมดจากตาราง COMPANY โดยที่ AGE เริ่มต้นด้วย 2
sqlite> SELECT * FROM COMPANY WHERE AGE  GLOB '2*';สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0ต่อไปนี้เป็นตัวอย่างซึ่งจะแสดงระเบียนทั้งหมดจากตาราง COMPANY โดยที่ ADDRESS จะมีเครื่องหมายยัติภังค์ (-) อยู่ภายในข้อความ -
sqlite> SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0