我已经升级了我的系统,并为我正在处理的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选项,还是我需要做些什么呢?
如果您需要更多信息,请与我们联系.
我的查询:
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)
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) 收到以下错误:
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
该站点生成结果,但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文档时,我仍然不清楚我必须解决的问题.我似乎无法掌握这一点.
我一直在切换到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 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吗?
我正在使用安装在 Ubuntu 14.04 上的 mysql 存储库中最近安装的 mysql。我运行的每个查询都会导致以下错误,并且我无法通过谷歌或此处找到任何讨论此问题的内容。
例如,此(显然仅用于演示目的)查询返回以下内容:
[SQL]SELECT * FROM tabcLocations
受影响的行数:0 时间:0.705s
它返回查询的结果就好了,但是在每个查询上都会抛出一个错误,这显然会影响我的应用程序中的错误处理。有关如何解决此问题的任何建议?目前这相当令人抓狂。
它可能是显而易见的,我完全忽略了这一点,但我有一个表包含多行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) 我有一个基本的键值表,每个用户都有一些数据.使用更新的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 ×10
mysql-error-1055 ×10
sql ×5
group-by ×3
aggregate ×1
laravel ×1
php ×1
phpmyadmin ×1