我查詢數據庫原始laravel這樣的:如何在db raw laravel中添加條件?
public function getTopProduct($price = null) {
$products = DB::select(DB::raw('SELECT *
FROM (
SELECT a.*, b.name AS store_name, b.address
FROM products a
JOIN stores b ON b.id = a.store_id
WHERE a.status = 1
) AS product
GROUP BY store_id')
);
return $products;
}
我想補充條件
如果價格不爲空,這將增加對where
例如條件,漲價= 1000 ,然後在where
本查詢:
WHERE a.status = 1 AND a.price < 1000
如果價格= null,則條件AND a.price < 1000
未執行
我該怎麼辦?
更新
我稍微改變我的代碼流
我嘗試這樣的:
public function getTopProduct($price)
{
if($price == 1)
$price_condition = 'WHERE price > 1000';
else if($price == 2)
$price_condition = 'WHERE price >= 500 AND a.price <= 1000';
else if($price == 3)
$price_condition = 'WHERE price < 500';
else
$price_condition = '';
$products = DB::select('SELECT *
FROM (
SELECT a.*, b.name AS store_name, b.address
FROM products a
JOIN stores b ON b.id = a.store_id
WHERE a.status = 1
) AS product
GROUP BY store_id
'.$price_condition
);
return $products;
}
和它的作品
你怎麼看?
我的解決方案是否正確?或者你有更好的解決方案?
取一個變量,'$價格= array_column($請求 - >獲取( '價格'));'和'做 - > when'用'where'條件查詢!它在價格要求時執行! –