Mysql有効only_full_group_byモード

1070 ワード

Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘userinfo.t_long.user_name’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
MySQL 5.7.5とupは機能依存の検出を実現した.only_が有効になっている場合full_group_by SQLモード(デフォルトではそうです)では、MySQLは、機能的に依存するのではなく、グループ内の名前のない非集約カラムを参照するリスト、条件、または順序リスト参照のクエリーの選択を拒否します.
mysql> SHOW SESSION VARIABLES;
mysql> SHOW GLOBAL VARIABLES;
mysql> select @@sql_mode;

セッションとglobalのsql_が表示されます.modeの値はすべて:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';