Apa yang akan berguna di sini adalah LIKE ANY
predikat seperti yang tersedia di PostgreSQL
SELECT *
FROM tbl
WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
Sayangnya, sintaks itu tidak tersedia di Oracle. Anda dapat memperluas predikat perbandingan terukur menggunakan OR
, namun:
SELECT *
FROM tbl
WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
Atau sebagai alternatif, buat semi join menggunakan EXISTS
predikat dan struktur data array tambahan (lihat pertanyaan ini untuk detailnya):
SELECT *
FROM tbl t
WHERE EXISTS (
SELECT 1
-- Alternatively, store those values in a temp table:
FROM TABLE (sys.ora_mining_varchar2_nt('%val1%', '%val2%', '%val3%'/*, ...*/))
WHERE t.my_col LIKE column_value
)
Untuk pencarian teks lengkap yang sebenarnya, Anda mungkin ingin melihat Oracle Text:http://www.Oracle.com/technetwork/database/enterprise-edition/index-098492.html