Filter kolom dengan kemiripan kata

Problem

Terdapat sebuah data mentah yang berisi nama area dan beberapa kolom penting lain. Filterlah semua kota yang termasuk dalam daerah Jakarta, Bogor, Depok, Tangerang, dan Bekasi aka JABODETABEK.

Solusi panjang

SELECT * FROM area WHERE name ilike '%jakarta%';
SELECT * FROM area WHERE name ilike '%bogor%';
...
SELECT * FROM area WHERE name ilike '%bekasi%';

Ribet dan menyalahi kaidah Don’t Repeat Yourself. Harus kembali di-union agar mudah dilihat di satu tempat. Bisa juga disandingkan menggunakan operator OR seperti berikut :

select * from area where name ilike '%jakarta%' or name ilike '%bogor%' or name ilike .... dst

Tetep saja panjang dan berulang-ulang.

Solusi ringkas

SELECT
    *
FROM
    area
WHERE
    LOWER(name)
    SIMILAR TO '%(jakarta|bogor|depok|bekasi|tangerang)%';

Ringkas. hasil langsung berkumpul di satu tempat.