각 사용자에 대해 몇 가지 데이터가있는 기본 키 - 값 테이블이 있습니다. 업데이트 된 mysql을 사용하면 그룹을 만들 때 sql_mode
이 only_full_group_by
(새 기본값)으로 설정됩니다. 나는 다음과 같은 오류 얻을only_full_group_by를 사용하여 쿼리 그룹을 수정하는 방법
select * from user_features
where user_id = 1
group by feature_key
: :이 간단한 쿼리를 실행하려고하면이 예제 데이터로
SQL Error (1055): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'date.user_features.user_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
을, 나는이 feature_key
(I는 한 번 group_concat
추가됩니다에 따라 그룹화 할 그룹 오류가 수정 됨).
| user_id | feature_key | feature_value |
+---------+-------------+---------------+
| 1 | color | red |
+---------+-------------+---------------+
| 1 | age | 15 |
+---------+-------------+---------------+
| 1 | color | blue |
+---------+-------------+---------------+
표는 다음과 같습니다
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 `user_id_feature_key_feature_value` (`user_id`,`feature_key`,`feature_value`)
)
나는이 문제를 해결하기 위해 실행할 수있는 또는 무엇 지수 (들) 내가 추가 할 필요가 무엇 쿼리?
그래서 이전에이 대답? 빨간색이나 파란색? –
그룹이 없으면 어떤 색을 묻는거야? 확실하지 않은 질문을 이해합니다. 죄송합니다. –
mysql의 이전 버전이 <5입니다.7 당신이 색깔에 대한 가치를 얻을 수있는 가치와 가치를 반환 할 것으로 기대하는이 그룹은 정상적인 동작이며 다른 RDBMS에 비해 MySQL을 너무 늦게 채택했습니다 –