标签: mysql-error-1055

在MySql中执行查询时与only_full_group_by相关的错误

我已经升级了我的系统,并为我正在处理的Web应用程序安装了MySql 5.7.9和php.我有一个动态创建的查询,当在旧版本的MySql中运行时,它可以正常工作.自升级到5.7后,我收到此错误:

SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'support_desk.mod_users_groups.group_id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

请注意有关服务器SQL模式主题的Mysql 5.7的手册页.

这是给我带来麻烦的查询:

SELECT mod_users_groups.group_id AS 'value', 
       group_name AS 'text' 
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id 
WHERE  mod_users_groups.active = 1 
  AND mod_users_groups.department_id = 1 
  AND mod_users_groups.manage_work_orders = 1 
  AND group_name != 'root' 
  AND group_name != 'superuser' 
GROUP BY group_name 
HAVING COUNT(`user_id`) > 0 
ORDER BY group_name
Run Code Online (Sandbox Code Playgroud)

我在这个问题上做了一些谷歌搜索,但我不明白only_full_group_by弄清楚我需要做些什么来修复查询.我可以关掉这个only_full_group_by选项,还是我需要做些什么呢?

如果您需要更多信息,请与我们联系.

mysql sql group-by mysql-error-1055

394
推荐指数
13
解决办法
50万
查看次数

#1055 - SELECT列表的表达式不在GROUP BY子句中,并且包含非聚合列,这与sql_mode = only_full_group_by不兼容

我的查询:

select libelle,credit_initial,disponible_v,sum(montant) as montant 
FROM fiche,annee,type where type.id_type=annee.id_type and annee.id_annee=fiche.id_annee 
and annee = year(current_timestamp) GROUP BY libelle order by libelle asc
Run Code Online (Sandbox Code Playgroud)
  • Mysql 5.7.9运行查询没有任何问题,但mysql 5.7.12显示上面的错误你可以帮助我

mysql mysql-error-1055

52
推荐指数
8
解决办法
10万
查看次数

SELECT列表不在GROUP BY子句中,并且包含非聚合列....与sql_mode = only_full_group_by不兼容

AM在我的带有WAMP服务器的Windows PC上使用MySQL 5.7.13

这里我的问题是在执行此查询时

SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`
Run Code Online (Sandbox Code Playgroud)

我总是得到这样的错误

SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'returntr_prod.tbl_customer_pod_uploads.id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

你能告诉我最好的解决方案吗?

我需要像结果一样

+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
| id | user_id | load_id | bill_id | latitude | langitude | proof_type | document_type | file_name    | is_private | status | createdon           | updatedon           |
+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
|  1 |       1 | 78      | 1       | 21.1212  | 21.5454   |          1 |             1 | id_Card.docx |          0 | Active | …
Run Code Online (Sandbox Code Playgroud)

mysql group-by mysql-error-1055

38
推荐指数
20
解决办法
10万
查看次数

SELECT列表不在GROUP BY子句中,并包含非聚合列

收到以下错误:

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'world.country.Code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Run Code Online (Sandbox Code Playgroud)

运行以下查询时:

select countrylanguage.language, country.code, sum(country.population*countrylanguage.percentage/100)
from countrylanguage
join country on countrylanguage.countrycode = country.code
group by countrylanguage.language
order by sum(country.population*countrylanguage.percentage) desc ;
Run Code Online (Sandbox Code Playgroud)

使用MySQL世界测试数据库(http://dev.mysql.com/doc/index-other.html).不知道为什么会这样.目前正在运行MYSQL 5.7.10.

有任何想法吗???:o

mysql sql aggregate mysql-error-1055

32
推荐指数
2
解决办法
12万
查看次数

MySQL:不在GROUP BY中

该站点生成结果,但SELECT COUNT和SELECT查询与GROUP BY有两个不同的结果计数.这可能是由于phpmyadmin中显示的错误而不是网站上显示的错误.

查询:

SELECT count(DISTINCT `name`) as `numrows` FROM `users` WHERE `verified` = '1'

SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25
Run Code Online (Sandbox Code Playgroud)

PhpMyAdmin提供以下错误:

1055 - 'main.users.type'不在GROUP BY中

在阅读MySQL文档时,我仍然不清楚我必须解决的问题.我似乎无法掌握这一点.

mysql sql phpmyadmin mysql-error-1055

19
推荐指数
2
解决办法
5万
查看次数

错误代码:1055与sql_mode = only_full_group_by不兼容

我一直在切换到Lahman SQL棒球数据库的离线版本时遇到问题.我正在使用嵌入EDX课程的终端.此命令在Web终端上运行正常:

SELECT concat(m.nameFirst,concat(" ",m.nameLast)) as Player,
    p.IPOuts/3 as IP,
    p.W,p.L,p.H,p.BB,p.ER,p.SV,p.SO as K,
    p.IPOuts+p.W*5+p.SV+p.SO-p.BB-p.L-p.H as PTS,
    p.yearID as Year
FROM Pitching p
Inner Join Master m
    ON p.playerID=m.playerID
WHERE p.yearID=2014 AND p.IPOuts>=50
GROUP BY m.playerID
ORDER BY PTS DESC;
Run Code Online (Sandbox Code Playgroud)

哪个运行SQL 5.5.46,但是当我使用运行5.7.10的离线版本时,我收到以下错误代码:

错误代码:1055. SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'stats.m.nameFirst',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

我一直在阅读很多解决人们问题的方法,但在这种情况下他们没有帮助.这种情况从未发生过,所以我认为这要么非常明显,要么就是我在编码方面做得很好.无论如何,任何人都知道如何解决这个问题?

mysql sql mysql-workbench mysql-error-1055

18
推荐指数
4
解决办法
5万
查看次数

mysql 5.6有ANY_VALUE功能吗?

目前我在开发中使用mysql 5.7,在生产中使用5.6.每次我在开发中使用group运行查询时都会出现一些错误,如"错误代码:1055. SELECT列表的表达式#1不在GROUP BY中"

这是查询.

SELECT c.id, c.name, i.* 
 FROM countries c, images i 
WHERE i.country_id = c.id
GROUP BY c.id; Fixed for 5.7; 

SELECT c.id, c.name,
       ANY_VALUE(i.url) url, 
       ANY_VALUE(i.lat) lat, 
       ANY_VALUE(i.lng) lng 
  FROM countries c, images i
 WHERE i.country_id = c.id
 GROUP BY c.id;
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用5.7 ANY_VALUE中的mysql函数,但主要问题是它在mysql 5.6中不可用

因此,如果我修复sql语句进行开发,我将在生产中出错.

你知道mysql 5.6中ANY_VALUE函数的任何解决方案或polifill吗?

mysql group-by aggregate-functions mysql-error-1055

14
推荐指数
2
解决办法
1万
查看次数

每次查询都会出现 MySQL 错误 1055 information_schema.PROFILING.SEQ

我正在使用安装在 Ubuntu 14.04 上的 mysql 存储库中最近安装的 mysql。我运行的每个查询都会导致以下错误,并且我无法通过谷歌或此处找到任何讨论此问题的内容。

例如,此(显然仅用于演示目的)查询返回以下内容:


[SQL]SELECT * FROM tabcLocations

受影响的行数:0 时间:0.705s

[Err] 1055 - ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列“information_schema.PROFILING.SEQ”,该列在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by 不兼容

它返回查询的结果就好了,但是在每个查询上都会抛出一个错误,这显然会影响我的应用程序中的错误处理。有关如何解决此问题的任何建议?目前这相当令人抓狂。

mysql information-schema mysql-error-1055

5
推荐指数
1
解决办法
4978
查看次数

Larval SQLSTATE [42000]:语法错误或访问冲突:1055表达式#2

它可能是显而易见的,我完全忽略了这一点,但我有一个表包含多行user_id,site_id,例如

ldstaff | ld_site
____________________
   3         1
   3         2
   4         1 
Run Code Online (Sandbox Code Playgroud)

最初由旧开发人员编写的mysql查询得到了工作人员ID找到他们的名字,然后将所有网站连接在一起制作这样的东西.

StaffID | Name | sites
  3       Dave    1,2
Run Code Online (Sandbox Code Playgroud)

此查询最初编写为

SELECT `ld_staff` as staffID ,a.name,GROUP_CONCAT(`ld_site`) as sites FROM `lead_distribution` l

LEFT JOIN users a ON a.crm_id = l.ld_staff

WHERE ld_enabled = 1 AND

`account_type` = 1 AND `active` = 1 AND `no_more` = 0 AND network_team > 0 AND renewal_team = 0

GROUP BY `ld_staff`
Run Code Online (Sandbox Code Playgroud)

但是,当我们尝试在Laravel中将其作为新系统的一部分写入以获得相同的结果时,我们会出现错误SQLSTATE [42000]:语法错误或访问冲突:1055表达式#2无论我们如何尝试篡改查询它总是回到这个.读它似乎sql_mode only_full_group_by不允许这种类型的查询,所以我把sql_mode改为=""这个错误仍然存​​在.

幼虫查询是

$data = DB::table('lead_distribution')
    ->join('users', 'ld_staff', '=', 'users.crm_id')
    ->select("lead_distribution.ld_staff", …
Run Code Online (Sandbox Code Playgroud)

php mysql laravel mysql-error-1055

4
推荐指数
2
解决办法
3066
查看次数

如何使用only_full_group_by修复查询组

我有一个基本的键值表,每个用户都有一些数据.使用更新的mysql,当你执行分组时,它sql_mode设置为only_full_group_by(新的默认值).当我尝试运行这个简单的查询时:

select * from user_features
where user_id = 1
group by feature_key
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SQL错误(1055):SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'date.user_features.user_id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

有了这个示例数据,我想基于feature_key(我将添加一个group_concat组错误修复后)进行分组.

| user_id | feature_key | feature_value |
+---------+-------------+---------------+
| 1       | color       | red           |
+---------+-------------+---------------+
| 1       | age         | 15            |
+---------+-------------+---------------+
| 1       | color       | blue          |
+---------+-------------+---------------+
Run Code Online (Sandbox Code Playgroud)

该表如下所示:

CREATE TABLE `user_features` (
  `user_id` int(10) unsigned NOT NULL,
  `feature_key` varchar(50) NOT NULL,
  `feature_value` varchar(50) NOT NULL,
  UNIQUE KEY …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1055

4
推荐指数
1
解决办法
7595
查看次数