亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel,如何在where查詢中使用select AS?

Laravel,如何在where查詢中使用select AS?

PHP
慕桂英4014372 2023-10-15 16:33:28
      $data['losers'] = $data['losers']             ->select(DB::raw('ROUND((((users_24h-users_48h_24h) / users_48h_24h) * 100),2) AS daypercentage, name'))             ->where('daypercentage', '>=', '0')如果我在 where 查詢中使用 daypercentage,則無法找到它。在這種情況下怎么可能呢?
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

在 SQL 中,select子句中定義的別名不能在where子句中重復使用。您需要重復表達式(或使用子查詢或 cte)。

MySQL 有一個技巧,允許在having子句中使用別名,但我不建議在這里這樣做。您似乎只想要非負百分比,所以我認為您的where條款可以簡化為:

where users_24h >= users_48h_24h

我不確定用 Lavarel 表達這一點的最佳方式是什么,也許:

->select(DB::raw('round( (users_24h - users_48h_24h) / users_48h_24h * 100,2) as daypercentage, name'))
->where(DB::raw('users_24h >= users_48h_24h'))

請注意,我刪除了表達式中一些不必要的括號round()。


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號