公司開發時遇到的問題,在自己電腦上無法完美還原錯誤和場景
下面sql代碼是入參有時正常查找,無時查找全部數據,在PgSQL數據庫上使用該代碼,入參爲空是會出現錯誤,錯誤原因是參數傳入null值無法識別該傳入類型,oracle和mysql上沒有出現該問題
select * from `notice_mail` where ? is null or id = ?
因爲當時是動態代碼詳細處理比較複雜,這裏講解靜態解決方法
select * from `notice_mail` where ?::int is null or id = ?::int
sql代碼中 ?佔位符後加入::[類型說明]