首頁  >  問答  >  主體

mysql 报错,不太懂

迷茫迷茫2742 天前623

全部回覆(5)我來回復

  • PHP中文网

    PHP中文网2017-04-17 16:19:16

    正常select後面的欄位只能是group by中的欄位或是聚合函數,例如:

    select a,max(b) from t group by a;

    但你會發現,有時別人的mysql是這樣寫的,

    select a,b,max(c) from t group by a;

    為什麼別人不報錯?
    注意看下報錯提示的最後一句sql_mode=only_full_group_by
    sql_mode是用來檢查SQL語句的合法性,當配置為only_full_group_by時,selectgroup_by時,selectgroup要不是來自於集合函數的結果,或是來自於group by後中的字段值。
    因此,如果你想確保原來sql正常執行,可以去修改下my.cnf的配置,把sql_mode=only_full_group_by註解掉,前面加#號

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 16:19:16

    你 groupby ymf.u.uid 但沒有放進select的欄位裡吧?

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 16:19:16

    將sql一起貼出來

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 16:19:16

    你在使用group by的時候,所要select的欄位必須在group by中,聚合查詢除外。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 16:19:16

    謝邀,方便的話貼一下你的程式碼,看錯誤的話應該是 你查詢的欄位 不在 GROUP BY 裡面,詳細的話 還是要看你的 sql語句。

    回覆
    0
  • 取消回覆