我正在使用laravel 4查询。我想按OR条件获取数据。 Laravel 4有优先级规则吗?
我的查询是:
SELECT *
FROM order_items
WHERE (status = 'Y' OR (status = 'N' AND amount > 100))
AND product_id = '15'
LIMIT 1;
我有2个订单商品,但我希望结果中的第一个商品的状态为=“ Y”,如果不存在,则它满足OR的第二个条件。
这是我的Laravel代码:
$sql_select = "SELECT *
FROM order_items
WHERE (status = 'Y' OR (status = 'N' AND amount > 100))
AND product_id = '15'
LIMIT 1";
$data = DB::select($sql_select);
echo "<pre>";
print_r($data);
die;
对于简单的mysql查询,它可以工作,但是在laravel中,它没有给出结果。
答案 0 :(得分:1)
也许您应该尝试这种方式
DB::table('order_items')
->where('status', 'Y')
->orWhere(function($query)
{
$query->where('status', 'N')
->where('amount', '>', '100');
})
->where('product_id', 15)
->first();