Seperti yang sudah dikomentari, lebih baik dan lebih mudah untuk menggabungkan beberapa kondisi:
where departmentName like '%Medi%'
or departmentName like '%Ciga%'
or departmentName like '%Tabacc%';
Cara lain adalah dengan memasukkan nilai '%Medi%', '%Ciga%' dan '%Tabacc%' tersebut ke dalam tabel kondisi, lalu jalankan kueri ini:
select department.*
from department
cross join conditionTable
where department.departmentName like conditionTable.value;
Saya berasumsi di sini bahwa tabel Anda adalah department
dan conditionTable memiliki kolom value
. Jika Anda menerapkan solusi ini, Anda harus memperhatikan konkurensi, dan memfilter conditionTable dengan sesuatu seperti
select department.*
from department
inner join conditionTable on conditionTable.session = yourSessionId
where department.departmentName like conditionTable.value;
Terakhir, solusi ketiga yang mungkin berguna, jika Anda tidak ingin menggunakan conditionTable, adalah membuat string select <cond1> as value from dual union select <cond2> from dual...
dan ditempatkan ke dalam kueri dinamis sebagai
select department.*
from department
cross join
(select '%Medi%' as value from dual
union
select '%Ciga%' from dual
union
select '%Tabacc%' from dual) conditionTable
where department.departmentName like conditionTable.value;