公司开发时遇到的问题,在自己电脑上无法完美还原错误和场景
下面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代码中 ?占位符后加入::[类型说明]