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.