プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #3921

sql_mode に ONLY_FULL_GROUP_BY が設定されていてもエラーが発生しないようにしてほしい

kaoru n約8年前に追加.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
-
開始日:
2016-03-24
期日:
進捗率:

0%


説明

Overview (概要)

sql_mode に ONLY_FULL_GROUP_BY が設定されていると api.php/activity/search.json 呼び出し時に下記のエラーが発生し、タイムラインが表示されない。

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'databasename.m.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by, referer: http://localhost/

エラー発生時に発行されるSQL文

SELECT 
m.id AS m__id, 
m.member_id_to AS m__0, 
m.member_id_to AS m__0, 
COUNT('*') AS m__1 
FROM member_relationship m 
WHERE (m.member_id_to IN (?)) 
GROUP BY m.member_id_to;

MySQL 5.7 では、sql_mode に ONLY_FULL_GROUP_BY がデフォルト設定される。
sql_mode に ONLY_FULL_GROUP_BY を設定しない場合は、タイムライン投稿は可能である。

Spec (仕様)

SQL発行ロジックを見直し、sql_mode に ONLY_FULL_GROUP_BY を設定していても正常に動作するようにする。

他の形式にエクスポート: Atom PDF