Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
LIKE
LIKEOperator membandingkan ekspresi string, seperti nama kolom, dengan pola yang menggunakan karakter wildcard% (percent) dan _ (underscore). LIKEpencocokan pola selalu mencakup seluruh string. Untuk mencocokkan urutan di mana saja dalam string, pola harus dimulai dan diakhiri dengan tanda persen.
LIKEpeka huruf besar/kecil; ILIKE tidak peka huruf besar/kecil.
Sintaks
expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]
Argumen
- ekspresi
-
Ekspresi karakter UTF -8 yang valid, seperti nama kolom.
- LIKE | ILIKE
-
LIKEmelakukan kecocokan pola peka huruf besar/kecil. ILIKEmelakukan kecocokan pola case-insensitive untuk karakter single-byte UTF -8 (). ASCII Untuk melakukan kecocokan pola case-insensitive untuk karakter multibyte, gunakan LOWERfungsi pada ekspresi dan pola dengan kondisi. LIKE
Berbeda dengan predikat perbandingan, seperti = dan <>, dan LIKE ILIKE predikat tidak secara implisit mengabaikan spasi tambahan. Untuk mengabaikan spasi tambahan, gunakan RTRIM atau secara eksplisit melemparkan kolom keCHAR. VARCHAR
~~
Operator setara denganLIKE, dan~~*
setara denganILIKE. Juga!~~*
operator!~~
dan setara dengan NOT LIKE dan NOTILIKE. - pola
-
Ekspresi karakter UTF -8 yang valid dengan pola yang akan dicocokkan.
- escape_char
-
Ekspresi karakter yang akan lolos dari karakter metakarakter dalam pola. Defaultnya adalah dua garis miring terbalik ('\\').
Jika pola tidak mengandung metakarakter, maka pola hanya mewakili string itu sendiri; dalam hal ini LIKE bertindak sama dengan operator sama dengan.
Salah satu ekspresi karakter bisa CHAR atau tipe VARCHAR data. Jika berbeda, Amazon Redshift mengonversi pola ke tipe data ekspresi.
LIKEmendukung metakarakter pencocokan pola berikut:
Operator | Deskripsi |
---|---|
%
|
Cocokkan dengan urutan nol atau lebih karakter. |
_ |
Cocokkan karakter tunggal apa pun. |
Contoh
Tabel berikut menunjukkan contoh pencocokan pola menggunakanLIKE:
Ekspresi | Pengembalian |
---|---|
'abc' LIKE 'abc' |
True |
'abc' LIKE 'a%' |
Benar |
'abc' LIKE '_B_' |
Salah |
'abc' ILIKE '_B_' |
Benar |
'abc' LIKE 'c%' |
False |
Contoh berikut menemukan semua kota yang namanya dimulai dengan “E”:
select distinct city from users where city like 'E%' order by city; city --------------- East Hartford East Lansing East Rutherford East St. Louis Easthampton Easton Eatontown Eau Claire ...
Contoh berikut menemukan pengguna yang nama belakangnya berisi “sepuluh”:
select distinct lastname from users where lastname like '%ten%' order by lastname; lastname ------------- Christensen Wooten ...
Contoh berikut menunjukkan bagaimana untuk mencocokkan beberapa pola.
select distinct lastname from tickit.users where lastname like 'Chris%' or lastname like '%Wooten' order by lastname; lastname ------------- Christensen Christian Wooten ...
Contoh berikut menemukan kota yang karakter ketiga dan keempat adalah “ea”. Perintah ini digunakan ILIKE untuk menunjukkan ketidakpekaan kasus:
select distinct city from users where city ilike '__EA%' order by city; city ------------- Brea Clearwater Great Falls Ocean City Olean Wheaton (6 rows)
Contoh berikut menggunakan string escape default (\\) untuk mencari string yang menyertakan “start_” (teks start
diikuti oleh garis bawah): _
select tablename, "column" from pg_table_def where "column" like '%start\\_%' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)
Contoh berikut menentukan '^' sebagai karakter escape, kemudian menggunakan karakter escape untuk mencari string yang menyertakan “start_” (teks start
diikuti dengan garis bawah): _
select tablename, "column" from pg_table_def where "column" like '%start^_%' escape '^' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)
Contoh berikut menggunakan ~~*
operator untuk melakukan pencarian case-insensitive (ILIKE) untuk kota yang dimulai dengan “Ag”.
select distinct city from users where city ~~* 'Ag%' order by city;
city ------------ Agat Agawam Agoura Hills Aguadilla