LIKE mendukung pencocokan pola menggunakan _
untuk setiap karakter tunggal dan %
untuk setiap urutan karakter jadi ini:
SELECT 'thomas' LIKE '%(h|x)%'
tidak berfungsi karena LIKE tidak mengerti (...)
untuk pengelompokan atau |
untuk pergantian, itu hanyalah karakter literal dalam pola LIKE.
SIMILAR TO mendukung _
dan %
sama seperti LIKE tetapi menambahkan pengelompokan dengan (...)
, bergantian dengan |
, dan beberapa hal lainnya seperti ini:
SELECT 'thomas' SIMILAR TO '%(h|x)%'
bekerja seperti yang diharapkan.
~*
menggunakan regex POSIX jadi (...)
adalah untuk pengelompokan dan |
adalah untuk pergantian tetapi %
hanyalah tanda persen; artinya begini:
SELECT 'thomas' ~* '%(h|x)%'
sedang mencari h
atau x
dikelilingi oleh tanda persen dan tidak berfungsi seperti yang Anda harapkan.
~*
. Anda versi akan berfungsi jika Anda menggunakan regex yang tepat seperti:
SELECT 'thomas' ~* '(h|x)' -- alternation
SELECT 'thomas' ~* 'h|x' -- alternation without an unnecessary grouping
SELECT 'thomas' ~* '[hx]' -- or a character class
Dokumentasi yang ditautkan ke atas mencakup semua ini.