price
和discount_price
。列discount_price
的许多值可以是NULL
。
我希望discount_price
显示数据库中的值是NULL
,还是向客户显示price
。
它应该几乎像if语句:
if($discount_price != NULL) {
return $discount_price
}
else {
return $price
}
这是我的查询,它无法正常工作:
$products = Product_Lang::select(\DB::raw('products_lang.*'))
->join('products', 'products_lang.product_id', '=', 'products.id')
->join('category_product', 'products.id', '=', 'category_product.product_id')
->where('language_code', App::getLocale())
->where('display', 1)
->where('category_id', $category->id)
->selectRaw('CONCAT(name, " ", model) AS product_name, products.id')
->selectRaw('COALESCE(discount_price, price) AS product_price')
->orderBy($sortby, $order)
->paginate(50);
答案 0 :(得分:0)
确保您的discount_price
字段的值为NULL
,而不仅仅是空字段。如果您的字段值为空,则COALESCE
将返回一个空值,仅当您的字段值为Null
时,它才会起作用。
如果以这种方式解决,请将您的discount_price
默认值设为' NULL'在数据库中。