select max(startd),startm from count_data  听说:如果使用了聚合函数,那么就一定要在group by后面加了非聚合函数的列。。我这个SQL 。在2个完全相同的数据库里面。执行时,
一个没有语法错误,一个就有语法错误。请问这个为什么。。

解决方案 »

  1.   

    MySQL支持这种不在GROUP BY中的语法,它会“随便”为这个字段取一个值。检查你的MYSQL的SQL语法模式 
    mysql> select @@sql_mode;
    +----------------------------------------------------------------+
    | @@sql_mode                                                     |
    +----------------------------------------------------------------+
    | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +----------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    select max(startd),startm from count_data  
    不是标准的SQL语句
    select max(startd),startm from count_data  group by startm
      

  3.   

      请问除了这个语法模式以外,还有别的原因吗? 好像我改了sql_mode的值,还是不能解决我的问题 不过,一个mysql是我本机上的。。一个是远程服务器上面的在远程服务器上,不管改什么模式,都必须加group by 。请问。这是
      

  4.   

     但我在本机上的mysql。。不管改什么模式。都不用加group by...