php - mysql 的 sql_mode问题~~ONLY_FULL_GROUP_BY
本文介绍了php - mysql 的 sql_mode问题~~ONLY_FULL_GROUP_BY的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
5.7版的mysql这对于之前版本的group by总是不能用!
有没有较妥当的解决办法?更改sql_mode好像会出现性能问题吧?重写sql怎么写?
SELECT
s.id,
s.users_id,
COUNT(*) as attempt,
s.time
s.language,
s.is_public,
u.name,
u.nick
FROM
s
INNER JOIN users u ON u.id = s.users_id
WHERE s.sid = 10 AND s.result = 1
GROUP BY s.users_id
ORDER BY s.time
解决方案
SELECT
s.id,
s.users_id,
COUNT(*) as attempt,
s.time,
s.language,
s.is_public,
u.name,
u.nick
FROM
s
INNER JOIN users u ON u.id = s.users_id
WHERE s.sid = 10 AND s.result = 1
GROUP BY s.users_id,s.id,s.time,s.language,s.is_public,u.name,u.nick
ORDER BY s.time
或者
SELECT
s.users_id,
COUNT(*) as attempt,
FROM
s
INNER JOIN users u ON u.id = s.users_id
WHERE s.sid = 10 AND s.result = 1
GROUP BY s.users_id
ORDER BY s.time
因为假如s
表有两行数据,他们的users_id
相等,但是id
不相等,按照你的写法,mysql不知道s.id
该输出什么
这篇关于php - mysql 的 sql_mode问题~~ONLY_FULL_GROUP_BY的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文