我们在进行查询操作的时候会有根据多个参数来查询的情况,查询语句一样,但是条件不一致,这个时候使用动态sql语句就可以非常方便的帮助我们实现多条件查询,下面是我在开发中遇到的一个例子
在网上查了下,没有查到很清楚的案列,写的有点复杂,所以记录下来,方便阅读巩固
案例:
假设我前端查询的时候会有三个值,code,jine,danj,有可能查询的时候只会有一个值,或者两个值,或者没有值,我就在想有没有最简短的sql 语句来实现,用原生的,不用框架定义好的方法呢,
看看我写的:
数据表信息:
将写好的方法封装起来:
function query($code,$jine,$danji)
{
/*
* 可能查询的时候只会有一个值,或者两个值,或者没有值 * */
*
$code=$code; 参数1
$jine=$jine; 参数2
$danji=$danji; 参数3,没有值 */
$tj='';
if (!empty($code)){
$tj1 = " code = '{$code}' ";
$tj=" {$tj1} ";
}
if (!empty($jine)){
$tj2 = " jine = '{$jine}' ";
$tj=" {$tj1}and{$tj2} ";
}
if (!empty($danji)){
$tj3 = " danj = '{$danji}' ";
$tj=" {$tj1}and{$tj2}and{$tj3} ";
}
if (!empty($tj)){
$data = Db::query('select * from moban where'.$tj);
}else{
$data = Db::query('select * from moban');
}
return json_encode($data);}
复制
方法调用:
public function index()
{
$code=1; //参数1
$jine=12; //参数2
$danji='';
$data=query($code,$jine,$danji);
dump($data);
}复制
打印结果
这应该还有更简短的语句可以实现
文章转载自小码哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。