我正在嘗試獲取當(dāng)月用戶訪問量的總和。這是我的代碼(如果重要的話,我使用 ORM RedBeanPHP):$summ = R::exec('SELECT SUM(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);并且 $summ 總是 1,即使它不是真的。._. 我的表統(tǒng)計:https : //drive.google.com/open?id=1MFt-FtEtqkk7QWQC2oAtMBA0WAgOIV4hPS此外,當(dāng)我嘗試僅獲取具有我需要的列最大值的行的值時,如下所示:$summ = R::exec('SELECT MAX(amount),value FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);我遇到錯誤:“語法錯誤或訪問沖突:1140 在沒有 GROUP BY 的聚合查詢中,SELECT 列表的表達式 #2 包含非聚合列‘somesite.statistic.value’;這與 sql_mode=only_full_group_by 不兼容”我說好的,并且嘗試添加 GROUP BY ID。但是后來我只得到了第一行,但不僅僅是實際最大值._。我不知道我做錯了什么
1 回答

吃雞游戲
TA貢獻1829條經(jīng)驗 獲得超7個贊
在 RedBeanPHP 中,您必須使用 R::exec 以外的其他函數(shù)來進行 SELECT 查詢。您獲得的數(shù)字可能是 select 返回的行數(shù)或指示成功的簡單值。
嘗試
$summ = (int)R::getCell('SELECT SUM(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month',[':month'=>date('m')]);
對于第二個問題,您可能想學(xué)習(xí)一下 SQL,至少是非?;A(chǔ)的知識。像這樣的嵌套查詢可能對您有用。
SELECT value FROM statistic WHERE amount = (SELECT MAX(amount) FROM statistic WHERE type = "usuall_visit" AND month = :month') LIMIT 1
您將需要再次將它與 R::getCell 一起使用(如果您想檢索多列,則需要使用 R::getRow)。
- 1 回答
- 0 關(guān)注
- 249 瀏覽
添加回答
舉報
0/150
提交
取消