SQLite - Klausul GLOB

SQLite GLOBoperator digunakan untuk mencocokkan hanya nilai teks dengan pola menggunakan wildcard. Jika ekspresi pencarian dapat dicocokkan dengan ekspresi pola, operator GLOB akan mengembalikan nilai true, yaitu 1. Tidak seperti operator LIKE, GLOB peka huruf besar / kecil dan mengikuti sintaks UNIX untuk menetapkan karakter pengganti berikut.

  • Tanda asterisk (*)
  • Tanda tanya (?)

Tanda asterisk (*) mewakili nol atau beberapa angka atau karakter. Tanda tanya (?) Mewakili satu angka atau karakter.

Sintaksis

Berikut ini adalah sintaks dasar * dan ?.

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 '????'

Anda bisa menggabungkan Njumlah ketentuan yang menggunakan operator DAN atau ATAU. Di sini, XXXX bisa berupa nilai numerik atau string apa pun.

Contoh

Tabel berikut mencantumkan sejumlah contoh yang menunjukkan DI MANA bagian memiliki klausa LIKE yang berbeda dengan '*' dan '?' operator.

Sr.No. Pernyataan & Deskripsi
1

WHERE SALARY GLOB '200*'

Menemukan nilai apa pun yang dimulai dengan 200

2

WHERE SALARY GLOB '*200*'

Menemukan nilai apa pun yang memiliki 200 di posisi mana pun

3

WHERE SALARY GLOB '?00*'

Menemukan nilai apa pun yang memiliki 00 di posisi kedua dan ketiga

4

WHERE SALARY GLOB '2??'

Menemukan nilai apa pun yang dimulai dengan 2 dan setidaknya memiliki panjang 3 karakter

5

WHERE SALARY GLOB '*2'

Menemukan nilai apa pun yang diakhiri dengan 2

6

WHERE SALARY GLOB '?2*3'

Menemukan nilai apa pun yang memiliki 2 di posisi kedua dan diakhiri dengan 3

7

WHERE SALARY GLOB '2???3'

Menemukan nilai apa pun dalam angka lima digit yang dimulai dengan 2 dan diakhiri dengan 3

Mari kita ambil contoh nyata, perhatikan tabel PERUSAHAAN dengan catatan berikut -

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

Berikut adalah sebuah contoh, yang akan menampilkan semua record dari tabel PERUSAHAAN, di mana AGE dimulai dengan 2.

sqlite> SELECT * FROM COMPANY WHERE AGE  GLOB '2*';

Ini akan menghasilkan hasil sebagai berikut.

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

Berikut adalah sebuah contoh, yang akan menampilkan semua record dari tabel COMPANY dimana ADDRESS akan memiliki tanda hubung (-) di dalam teks -

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';

Ini akan menghasilkan hasil sebagai berikut.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0