SQL查询中的多个WHERE条件

时间:2016-02-06 19:46:10

标签: php laravel

我的数据库中有学生详细信息。 php firstname lastname DOB gender status (Active, Not Active) fee_paid

我还有一个搜索表单,用于根据不同条件搜索学生的视图。

例如,我可能想要搜索这些内容 1.所有在1日至2日之间出生并且已支付x费用的女学生。 所有给阿里打电话的学生都支付了x笔费用。 3.所有未支付任何费用的活跃学生。

我的问题是,我如何简单地检查,如果设置了字段,则在查询中使用它,否则不要将其包含在查询中。同样对于DOB,搜索是按日期范围。

3 个答案:

答案 0 :(得分:1)

使用isset()和循环来编译SQL查询。查看这篇文章: Search MySQL Database with Multiple Fields in a Form

答案 1 :(得分:0)

所以即使这个问题没有说明,它也标注在laravel中,所以这里是:

首先阅读where子句: https://laravel.com/docs/5.1/queries#where-clauses

接下来,我会做类似的事情(可能不起作用,psoudo代码)

1


    $females = Model::whereBetween('DOB',array('2014-08-15','2014-08-18'))->where('fee_paid',100)->get();

    //do something with $females

    2。
    
        $ali = Model::Where(function ($query) {
                    $query->where('votes', '>', 100)
                          ->orWhere('title', '', 'Admin');
        })->where('fee_paid',100);
    
    

    3

    
        $freebies = Model::where('status','active)->where('fee_paid',0)->get()
    
    

    如果我完全符合你的要求,那就用不同的方式表达问题:)

答案 2 :(得分:0)

MySQL有一个AND子句。你可以这样说

$search = Ali;

SELECT * FROM registeredUsers WHERE username LIKE '%".$search."%' BETWEEN date1 AND date2 AND paid_fee = 4 

继续快速搜索一些MySQL语句示例;你会找到一些非常酷的东西。