Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Ubuntu 18.04:_Mysql_Sql_Group By_Mysql Error 1055 - Fatal编程技术网

Mysql Ubuntu 18.04:

Mysql Ubuntu 18.04:,mysql,sql,group-by,mysql-error-1055,Mysql,Sql,Group By,Mysql Error 1055,/etc/mysql/mysql.conf.d/mysqld.cnf 与 及 sudo service mysql restart以上一致的答案是好的,但如果在修复my.cnf文件后在存储过程中运行查询时遇到问题,请再次尝试加载SP 我怀疑MySQL最初一定是使用默认的only_full_group_by set编译SP。因此,即使在我更改my.cnf并重新启动mysqld时,它对SPs没有任何影响,并且它们一直失败,因为“SELECT list不在GROUP BY子句中,并且包含未聚合的列…这

/etc/mysql/mysql.conf.d/mysqld.cnf


sudo service mysql restart

以上一致的答案是好的,但如果在修复my.cnf文件后在存储过程中运行查询时遇到问题,请再次尝试加载SP

我怀疑MySQL最初一定是使用默认的only_full_group_by set编译SP。因此,即使在我更改my.cnf并重新启动mysqld时,它对SPs没有任何影响,并且它们一直失败,因为“SELECT list不在GROUP BY子句中,并且包含未聚合的列…这在功能上不依赖GROUP BY子句中的列;这与sql_mode=仅_full_GROUP_BY”不兼容



重新加载SPs必须导致现在重新编译它们,并且仅禁用了_full _group _by。在那之后,它们似乎像预期的那样工作。

谢谢你,这很好用。我也同意我需要对这些列进行限定。它消除了任何模棱两可的可能性。我现在正在修复代码。非常感谢您的帮助。我的查询中甚至没有
GROUP BY
子句,但我得到了这个错误。@Haroonkan,这听起来像是一个新问题。如果你问的话请告诉我&我来看看。在MySQL 5.7中,他们设置了一个属性,要求查询中所有非聚合字段都是GROUP BY。所以,像selecta,SUM(b)这样的查询是从表中选择的;表示字段“a”必须位于GROUP BY中。因此,如果到目前为止还没有组,则必须将其添加到查询中。这是关于在查询的SELECT部分中是否至少有一个聚合字段。我必须按照此答案中的建议,通过将该项添加到group by子句来修复“警告”,因为所有建议sql_模式修复的答案都不起作用。(我的MySQL在一个存储过程中,但不知道这是否相关)这是一个解决办法,您最好修复您的查询,而不是关闭警告更新/etc/MySQL/my.cnf(如下所示)是一个更可持续的解决方案,因为默认设置往往会在重新启动后恢复。对于那些认为应该修复查询的人来说,当您需要快速调试查询并执行类似于my_table t GROUP BY col中的
SELECT COUNT(*),t.*这样的操作,并且您有20-50列时,这并不容易,您想花那么多时间将每列添加到GROUP BY吗?这种“解决方案”非常危险。您可以通过盲目更改以前禁用的模式来激活这些模式,而不是仅删除有问题的一个设置标志。这可能会导致意外的行为,在最坏的情况下会导致错误的结果或使您的应用程序完全停止工作。因此,我认为这个答案是错误的。我通过通过代码> >选择@ @ SqLyMod来计算当前的SqLyMy模式,通过刷新来实现这一点。code>然后将结果添加到my.cnf:
sql\u mode=[查询中的模式列表,只减去\u FULL\u GROUP\u BY]
“修复您的查询”很困难,因为所有查询都是多年前由不在公司的另一个人完成的;)我认为MySQL不支持
FIRST()。因此,没有FIRST(),因为它过去是GROUP BY函数本身的同义词。@DrDamnit,我相信它更像是在这种情况下的随机选择,导致混乱,因此默认情况下启用
仅\u FULL\u GROUP\u BY
我已经知道答案,但带有彩色矩形的示例非常容易理解,下次有人问我时,我会重新使用它。@azerafati是否有类似FIRST()的东西或某个查询可以用来获取第一个值,就像我的情况一样。提醒所有尝试使用AdonisJS的流浪用户,你需要它来运行
paginate
函数。显然,这不仅仅适用于流浪用户,但是任何Unix系统。请注意,对于我来说,
my.cnf
文件的位置是
/etc
。Als注意到自MySQL 5.7.8以来的新语法:
sql mode=“STRICT\u TRANS\u TABLES,NO\u ZERO\u IN\u DATE,NO\u ZERO\u DATE,ERROR\u FOR\u DIVISION\u BY\u ZERO,NO\u AUTO\u CREATE\u USER,NO\u ENGINE\u SUBSTITUTION”
我工作得很好,感谢[ERROR][MY-000077][Server]/usr/bin/mysqld:设置值'STRICT\u TRANS TABLES,NO\u ZERO\u DATE,错误为0除以0,没有自动创建用户,没有引擎替换到“sql模式”,感谢您指出了解决此问题的最佳答案。非常感谢你,汉克斯,也为我工作过。但是我使用Mac的默认mysql,所以我没有brew路径。只需sudo cp my-default.cnf/etc/my。cnf@MikeNguyen sudo cp/usr/local/mysql-5.7.17-macos10.12-x86\u 64/support-files/my-default.cnf/etc/my.cnf sudo vi/etc/my.cnf set sql\u model sql\u mode=STRICT\u TRANS\u表,无输入日期、无日期、按零划分的错误、无自动创建用户,没有引擎替换重新启动MySQL服务器。我知道这可能不是解决这个问题的长期方法,但现在它肯定有帮助。我的托管公司GoDaddy使用MySQLV5.6.33,WampServer3使用MySQLV5.7.14。谢谢你的快速解决方案谢谢你的回答。如果我也想要这些电子邮件,作为结果组中的一个数组呢?你总是可以对必填字段进行分组,以获得每个条目!所以有办法!请帮助我,谢谢你的回答。如果我想按天分组(创建日期)
,该怎么办?如果添加了
DAY()
,它似乎不起作用。您使用的是RDS吗?@mubashirpawle no我在这里找到了解决方案这肯定是我遇到的最复杂的错误消息。@Rolf您见过Oracle中相同类型问题的错误吗?“
不是按表达式分组
”就是这样。它们可能只是一个数字错误代码,没有任何消息。我很幸运地在select查询前面加上了“create TEMPORT table temp”,然后从第二个查询“select*from temp”获得结果,然后是要清理的最后一个查询
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
SELECT COUNT(*) as attempts, SUM(elapsed) as elapsedtotal, userid, timestamp, questionid, answerid, SUM(correct) as correct, elapsed, ipaddress FROM `gameplay`
                        WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 DAY)
                        AND cookieid = #
  GROUP BY timestamp, userid, cookieid, questionid, answerid, elapsed, ipaddress
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    'mysql' => [
        'strict' => false, //behave like 5.6
        //'strict' => true //behave like 5.7
    ], 
SELECT name,           address , MAX(age) FROM t GROUP BY name; -- fails
SELECT name, ANY_VALUE(address), MAX(age) FROM t GROUP BY name; -- works
SELECT name, address, MAX(age) FROM t GROUP BY name;
SELECT name, ANY_VALUE(address), MAX(age) FROM t GROUP BY name;
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mysql.server restart
click on wamp icon -> MySql -> MySql Setting -> sql-mode -> user_mode
SELECT count(*) AS cnt, `regions_id`
FROM regionables 
WHERE `regionable_id` = '115' OR `regionable_id` = '714'
GROUP BY `regions_id`
HAVING cnt > 1
count(*) AS cnt
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
SELECT * FROM `users` GROUP BY `name`;
SELECT `name` FROM `users` GROUP BY `name`
SELECT ANY_VALUE(`id`), ANY_VALUE(`email`), `name` FROM `users` GROUP BY `name`
SELECT `age`, COUNT(`age`) FROM `users` GROUP BY `age`;
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
$query = $this->createQueryBuilder('smth')->addGroupBy('smth.mycolumn');
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION