Điều hữu ích ở đây sẽ là một LIKE ANY
vị từ có sẵn trong PostgreSQL
SELECT *
FROM tbl
WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
Thật không may, cú pháp đó không có sẵn trong Oracle. Bạn có thể mở rộng vị từ so sánh đã định lượng bằng cách sử dụng OR
, tuy nhiên:
SELECT *
FROM tbl
WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
Hoặc cách khác, tạo một kết nối bán bằng cách sử dụng EXISTS
vị từ và một cấu trúc dữ liệu mảng bổ trợ (xem câu hỏi này để biết chi tiết):
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
)
Để tìm kiếm toàn văn thực sự, bạn có thể muốn xem Oracle Text:http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html