回答編集履歴

1

追記

2018/05/14 06:53

投稿

mix-peach
mix-peach

スコア1910

test CHANGED
@@ -3,3 +3,83 @@
3
3
 
4
4
 
5
5
  [Group by に、selectするカラムをすべて書かないといけないかもしれない](https://qiita.com/bboobbaa/items/9fdca834076cb4c3389e)
6
+
7
+
8
+
9
+
10
+
11
+ ---
12
+
13
+
14
+
15
+
16
+
17
+ リンク先のページの説明と、mysqlのバージョンは違うようですが、原因は同じかと思います。
18
+
19
+
20
+
21
+ sql_mode=only_full_group_by
22
+
23
+
24
+
25
+ は、mysqlの設定で、
26
+
27
+
28
+
29
+ 「group by を使った場合に非集約(group by に書いてない)カラムはseleteできない」
30
+
31
+
32
+
33
+ ということなので、
34
+
35
+
36
+
37
+ つまり
38
+
39
+ ```
40
+
41
+ 〇 select a,b,c from test group by a,b,c
42
+
43
+ ```
44
+
45
+ は、実行できるが、
46
+
47
+ ```
48
+
49
+ ✕ select a,b,c from test group by a
50
+
51
+ ```
52
+
53
+ は実行できない
54
+
55
+
56
+
57
+ ということです。
58
+
59
+
60
+
61
+ phpMyAdmin内で、その設定を変える方法があるような気がしますが(ちょっと記憶がおぼろげです・・)
62
+
63
+ mysqlの設定そのものを変更できるのであれば、そちらを変えてしまう方法もあります。
64
+
65
+
66
+
67
+ あとは、group by のついたSQLを実行する前に、SQLでsql_modeを書き換える、という方法もあります。
68
+
69
+ (接続単位での一時的な上書きだったと思うので、都度やらないといけないので手間かも・・?)
70
+
71
+
72
+
73
+ mysqlサーバーが、レンタルサーバーだとか、レンタルサーバーでも契約がどうだとか、
74
+
75
+ で、実際に何ができるのかが変わって来ますので、どの方法がベストかは、ご自分で判断いただくのが良いかと思います。
76
+
77
+
78
+
79
+ mysql sql_mode
80
+
81
+ とか
82
+
83
+ mysql sql_mode=only_full_group_by
84
+
85
+ で調べると、詳しく書いてあるページが他にもたくさんあると思いますよ。