回答編集履歴
4
修正
test
CHANGED
File without changes
|
3
修正
test
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
on t1.xxx=t2.XXX
|
52
52
|
|
53
|
-
where t2.create_time < cast("2017-11" as
|
53
|
+
where t2.create_time < cast("2017-11" as DATETIME)
|
54
54
|
|
55
55
|
group by t2.ym
|
56
56
|
|
2
修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
```
|
40
40
|
|
41
|
-
以下のように、編集前の情報と比較する方がcreate_time をインデックスに含めるなどすれば高速に動作します。
|
41
|
+
以下のように、編集前の情報と比較する方がcreate_time をインデックスに含めるなどすれば高速に動作しますし、暗黙の型変換など入る余地もないですね。
|
42
42
|
|
43
43
|
```SQL
|
44
44
|
|
1
追記
test
CHANGED
@@ -13,3 +13,45 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
今回の場合は単に文字列として比較されるのですから、項目に格納される値の書式が統一されている前提であれば問題はありませんね。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
追記
|
20
|
+
|
21
|
+
---
|
22
|
+
|
23
|
+
yambejpさんへのコメントによると、全体では以下のようなものだと思います。
|
24
|
+
|
25
|
+
```SQL
|
26
|
+
|
27
|
+
select t2.ym
|
28
|
+
|
29
|
+
from テーブル t1
|
30
|
+
|
31
|
+
inner join (SELECT DATE_FORMAT(create_time,"%Y-%m") AS ym, ...) t2
|
32
|
+
|
33
|
+
on t1.xxx=t2.XXX
|
34
|
+
|
35
|
+
where t2.ym < "2017-11"
|
36
|
+
|
37
|
+
group by t2.ym
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
以下のように、編集前の情報と比較する方がcreate_time をインデックスに含めるなどすれば高速に動作します。
|
42
|
+
|
43
|
+
```SQL
|
44
|
+
|
45
|
+
select t2.ym
|
46
|
+
|
47
|
+
from テーブル t1
|
48
|
+
|
49
|
+
inner join (SELECT DATE_FORMAT(create_time,"%Y-%m") AS ym, ...) t2
|
50
|
+
|
51
|
+
on t1.xxx=t2.XXX
|
52
|
+
|
53
|
+
where t2.create_time < cast("2017-11" as date)
|
54
|
+
|
55
|
+
group by t2.ym
|
56
|
+
|
57
|
+
```
|