我正在创建存储过程
spRegularSearch 有参数
$.get("/api/permission/something", function(result){ // <-- Check whether the user has or has not the permission to access that component
if(result === "permission granted"){ // <-- this would be the check whether its ok or not to access that component - but this value can be changed manually if someone really wants to (debugger via inspector etc)
// permission ok
}
});
如果所有参数都不为空,我的代码是
@sex varchar(1),
@maritalStatus varchar(20) = null,
@minage int = null,
@maxage int = null,
@state varchar(50) = null,
@city varchar(50) = null
我想删除基于字段的搜索,即
忽略[fieldname] = @parameter
如果@parameter为空
当然,我可以使用许多if else条件来实现这一点但是有没有简单的方法呢?
答案 0 :(得分:2)
这是一个常见且重复的问题。您可以在下面使用: 在所有条件中添加“OR @parameter为空”
var gameclockTimer = NSTimer()
答案 1 :(得分:1)
实现此目的的一种简单方法是向WHERE
子句添加查找条件,如果true
值为@parameter
,则WHERE CASE WHEN @parameter IS NOT NULL THEN column = @parameter ELSE true END
子句将评估为@parameter
,从而对输出没有影响空。
function fncDate($date){
$d = DateTime::createFromFormat('DD-M-YY', $date);
$result = $d && $d->format('DD-M-YY') == $date;
if(!$result){
return "Date should be in the following format: DD-MMM-YYYY";
}
}
我实际上不推荐这种方法,因为优化器在计划时间时不知道fncDate("17-JAN-1985");
是否将是空值。更好的方法是根据您的参数动态构建查询,如果相关(参数不为空),则将条件附加到WHERE子句。
后期方法肯定会提高执行效率。