在項目中遇到需要動態拼接查詢條件的需求,現將解決方案列於下。
一、
select * from table t where ('$(param)' is null or t.filed = '$(param)')
使用方式:可以在拼接查詢條件時進行判斷,若param存在則傳該參數,若不存在則不傳任何參數。
二、
select *
from table t
where t.filed || '' = (case '$(param)'
WHEN '-1' THEN
t.filed || ''
ELSE
'$(param)'
END)
使用方式:拼接查詢條件時若param為空,則將其賦值為-1,否則傳真實參數。
