代码之家  ›  专栏  ›  技术社区  ›  Mike C.

MySQL5.7错误(这与SQL_模式=仅\u完整\u组\u不兼容)

  •  1
  • Mike C.  · 技术社区  · 6 年前

    我看到几个回答说“解决你的问题”,但我看到了 GROUP BY CONCAT 在我的查询中,不确定如何修复它。

     cur.execute('''
        SELECT user_id, symbol FROM first_sweep    
        WHERE date_time BETWEEN %s AND %s AND action = 'buy'
        GROUP BY CONCAT(user_id, "-",symbol) 
        ''', (min_rng, max_rng,))    
        fs = cur.fetchall() 
    

    我得到的全部错误是:

    (1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'stockpicker.first_sweep.user_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by")
    

    我使用的是Ubuntu18.04、MySQL5.7和python 2.7

    1 回复  |  直到 6 年前
        1
  •  1
  •   Bill Karwin    6 年前

    这工作:

    SELECT 
      CONCAT(user_id, '-', symbol) as usym, 
      MAX(user_id) AS user_id, 
      MAX(symbol) AS symbol
    FROM first_sweep    
    WHERE date_time BETWEEN %s AND %s AND action = 'buy'
    GROUP BY usym