gpt4 book ai didi

php - Laravel 查询构建器中的多个Where子句

转载 作者:行者123 更新时间:2023-11-29 15:55:34 24 4
gpt4 key购买 nike

我正在尝试在 Laravel 查询生成器中编写 MySql 查询,但它返回表中的所有数据。最有可能的是 where 子句无法正常工作。另外,当我放置此行 ->orWhereNull([$request->name]) 时,它会显示错误。由于我是 Laravel 查询生成器的新手,请帮助我离开这里。

MySql 查询:

SELECT t.trans_date, c.cust_id, c.first_name, c.name_name, t.notes_by, t.behavioural_notes
FROM time_trans t
JOIN customers c ON t.cust_id=c.cust_id
WHERE (t.trans_date BETWEEN 'param_date' AND 'param_date')AND (c.cust_id = '10034' OR param = NULL) AND t.behavioural_notes IS NOT NULL

查询生成器:

$data=DB::table('time_trans as t')
->join('customers as c','c.cust_id','=','t.cust_id')
->select('t.trans_date', 'c.cust_id', 'c.first_name', 'c.name_name', 't.notes_by', 't.behavioural_notes')
->WhereBetween('t.trans_date', [$request->from_date, $request->to_date])
->WhereNotNull('t.behavioural_notes')
->Where('c.cust_id','=',[$request->name])
->orWhereNull([$request->name])
->get();

最佳答案

你能检查一下吗?

$data=DB::table('time_trans as t')
->join('customers as c','c.cust_id','=','t.cust_id')
->select('t.trans_date', 'c.cust_id', 'c.first_name', 'c.name_name', 't.notes_by', 't.behavioural_notes')
->where(function ($query) use ($request) {
$query->WhereBetween('t.trans_date', [$request->from_date, $request->to_date])
->WhereNotNull('t.behavioural_notes')
->Where('c.cust_id','=',[$request->name]);
})
->orWhereNull([$request->name])
->get();

此外,您不需要在 orWhereNull([$request->name]) 中传递数组。它接受单个字符串列名称。

已编辑:-看看Mysql查询改革了这个

$data=DB::table('time_trans as t')
->join('customers as c','c.cust_id','=','t.cust_id')
->select('t.trans_date', 'c.cust_id', 'c.first_name', 'c.name_name', 't.notes_by', 't.behavioural_notes')
->WhereBetween('t.trans_date', [$request->from_date, $request->to_date])
->where(function ($query) use ($request) {
$query->Where('c.cust_id','=',[$request->name])
->orWhereNull(c.cust_id)
})
->WhereNotNull('t.behavioural_notes')
->get();

为什么要将 $request->param 传递给 orWhereNull,它应该是 col 名称。也许编辑后的 ​​Querybuilder 可以帮助你。您可以根据需要更新 orWhereNull 中的列名称。

关于php - Laravel 查询构建器中的多个Where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56499439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com