回答編集履歴
2
引数のsではなく、とを使っていたのを修正しました。
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
```python
|
7
7
|
>>> def decomp_sql(s):
|
8
|
-
... return re.sub(r'([ ,])', r'\1\n',re.sub('WHERE.*', '',
|
8
|
+
... return re.sub(r'([ ,])', r'\1\n',re.sub('WHERE.*', '', s))+'WHERE\n'+re.sub(r'(BETWEEN[^\n]*)\nAND\n', r'\1AND',re.sub(r'AND', '\nAND\n', re.sub('.*WHERE', '', s)))
|
9
9
|
...
|
10
10
|
>>> t = "SELECT 基本情報,地域,入出,転出 FROM user WHERE hogehoge('a','bbb','ccc','ddd') AND hoteotehote BETWEEN '2018-01-01 00:00:00' AND '2018-03-01 00:00:00' AND (tokyo, kanagawa)"
|
11
11
|
>>> print(decomp_sql(t))
|
1
WHEREが抜けていたので修正しました。
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
```python
|
7
7
|
>>> def decomp_sql(s):
|
8
|
-
... return re.sub(r'([ ,])', r'\1\n',re.sub('WHERE.*', '', t))+re.sub(r'(BETWEEN[^\n]*)\nAND\n', r'\1AND',re.sub(r'AND', '\nAND\n', re.sub('.*WHERE', '', t)))
|
8
|
+
... return re.sub(r'([ ,])', r'\1\n',re.sub('WHERE.*', '', t))+'WHERE\n'+re.sub(r'(BETWEEN[^\n]*)\nAND\n', r'\1AND',re.sub(r'AND', '\nAND\n', re.sub('.*WHERE', '', t)))
|
9
9
|
...
|
10
10
|
>>> t = "SELECT 基本情報,地域,入出,転出 FROM user WHERE hogehoge('a','bbb','ccc','ddd') AND hoteotehote BETWEEN '2018-01-01 00:00:00' AND '2018-03-01 00:00:00' AND (tokyo, kanagawa)"
|
11
11
|
>>> print(decomp_sql(t))
|
@@ -16,6 +16,7 @@
|
|
16
16
|
転出
|
17
17
|
FROM
|
18
18
|
user
|
19
|
+
WHERE
|
19
20
|
hogehoge('a','bbb','ccc','ddd')
|
20
21
|
AND
|
21
22
|
hoteotehote BETWEEN '2018-01-01 00:00:00' AND '2018-03-01 00:00:00'
|