SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

SQLite Like() Fungsi dengan Contoh

SQLite like() fungsi memungkinkan Anda untuk membandingkan string dengan pola yang diberikan. Anda juga dapat menentukan karakter pelarian jika diperlukan.

Anda dapat menggunakan like() berfungsi sebagai alternatif dari LIKE operator (yang memungkinkan Anda menjalankan Y LIKE X [ESCAPE Z] ekspresi).

Sintaks

Anda dapat menggunakan salah satu dari berikut ini:

like(X,Y)
like(X,Y,Z)
  • X adalah polanya
  • Y adalah string
  • Z adalah karakter pelarian opsional

Contoh Dasar

Ambil tabel berikut:

CatId       CatName   
----------  ----------
1           Brush     
2           Flutter   
3           100%Fluff 
4           100$Fluff 

Kita dapat menjalankan kode berikut untuk mengembalikan semua baris di mana nama kucing dimulai dengan huruf F:

SELECT * FROM Cats 
WHERE like('F%', CatName);

Hasil:

CatId       CatName   
----------  ----------
3           Flutter   

Dalam contoh ini, saya menggunakan % karakter wildcard untuk menunjukkan sejumlah karakter yang dapat diikuti (termasuk karakter nol), dan karakter tersebut dapat berupa karakter apa pun.

Karakter Garis Bawah (_)

Berikut adalah contoh yang menggunakan garis bawah (_ ) karakter. Karakter wildcard ini sama persis dengan satu karakter – tidak lebih, dan tidak kurang.

SELECT * FROM Cats 
WHERE like('Br_sh', CatName);

Hasil:

CatId       CatName   
----------  ----------
1           Brush     

Seperti yang disebutkan, itu hanya cocok dengan satu karakter. Jadi, berdasarkan data saya, saya tidak dapat melakukan hal berikut dan mengharapkan kecocokan.

SELECT * FROM Cats 
WHERE like('Br_', CatName);

Hasil:

 

(Ini sengaja dikosongkan karena tidak ada hasil).

Karakter Melarikan Diri

Anda juga dapat keluar dari karakter jika diperlukan. Untuk melakukannya, tambahkan karakter escape sebagai parameter ketiga (dan tambahkan juga sebelum karakter yang ingin Anda escape).

SELECT * FROM Cats 
WHERE like('100\%F%', CatName, '\');

Hasil:

CatId       CatName   
----------  ----------
3           100%Fluff 

Dalam hal ini saya lolos dari tanda persentase (% ). Saya melakukan ini karena saya sedang mencari kucing yang memiliki tanda persentase sebenarnya dalam nama mereka. Sebenarnya, dalam kasus ini saya sedang mencari nama kucing yang sangat spesifik – nama yang dimulai dengan 100%F .

Jika saya tidak lolos, itu akan digunakan sebagai wildcard, dan hasilnya akan berbeda.

Inilah yang saya dapatkan ketika saya menghapus karakter melarikan diri.

SELECT * FROM Cats 
WHERE like('100%F%', CatName);

Hasil:

CatId       CatName   
----------  ----------
3           100%Fluff 
4           100$Fluff 

Mengembalikan Nilai Boolean

Anda dapat menggunakan like() berfungsi untuk mengembalikan 0 atau 1 , tergantung apakah ada yang cocok atau tidak.

Ini bisa berguna jika Anda perlu mengembalikan semua baris, tetapi juga dengan tanda yang menunjukkan apakah mereka cocok dengan kriteria Anda atau tidak.

Ini contohnya.

SELECT 
  CatName,
  like('F%', CatName) 
FROM Cats;

Hasil:

CatName     CatName LIKE 'F%'
----------  ------------------
Brush       0                 
Flutter     1                 
100%Fluff   0                 
100$Fluff   0                 

Dalam hal ini, hanya satu baris yang cocok dengan kriteria, tetapi kami masih dapat melihat semua baris lainnya.

Sensitivitas Huruf Besar

Secara default, SQLite like() fungsi tidak peka huruf besar/kecil untuk karakter ASCII. Ini berarti akan cocok dengan karakter huruf besar dan kecil, terlepas dari huruf besar apa yang Anda gunakan dalam pola Anda.

Anda dapat menggunakan case_sensitive_like Pernyataan PRAGMA untuk melakukan pencocokan peka huruf besar/kecil dalam rentang ASCII.

Lihat Cara Membuat Operator LIKE SQLite Case-Sensitive untuk contoh. Artikel itu ditulis untuk LIKE operator, tetapi juga berlaku untuk like() fungsi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana last_insert_rowid() Bekerja di SQLite

  2. java.lang.OutOfMemoryError:[memori habis] saat membaca data dari Sqlite Android

  3. Bagaimana cara menggunakan ROW_NUMBER di sqlite

  4. Pengecualian tertutup Android SQLite

  5. Bagaimana cara mendapatkan id dari database dengan mengklik item tampilan daftar di android