我想从products表中获取所有列,并仅对pick_8和pick_12列应用sql case,但要做到这一点,我必须在select中写入所有列名。在laravel中,有没有什么方法可以应用simple get()方法来检索只有2个case的所有列,而不必手动编写所有列名。
$products = Product::where('is_archive',0)->select('humanId','name','cost','retailPrice','memberPrice','points',
DB::raw('(CASE WHEN pick_8 = 1 THEN "True" ELSE "False" END) AS pick_8'),
DB::raw('(CASE WHEN pick_12 = 1 THEN "True" ELSE "False" END) AS pick_12'))->get()->toArray();
1条答案
按热度按时间pu82cl6c1#
检索所有可以使用的列
DB::raw
方法也是。case语句将覆盖pick_8和pick_12列的原始值。
p、 顺便说一句。我猜你想用错误的工具来达到你的目标。看看雄辩的变异