質問編集履歴
7
コードを一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -164,6 +164,8 @@
|
|
164
164
|
|
165
165
|
nin6id = get_nin_id('s6', num1, num2, num3, num4, num5)
|
166
166
|
|
167
|
+
insert(...)
|
168
|
+
|
167
169
|
```
|
168
170
|
|
169
171
|
|
6
質問内容の調整、typoの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,22 +10,32 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
数列A
|
13
|
+
数列A(mst_nin_s6の中身(抜粋))
|
14
14
|
|
15
15
|
1 | 2 | 3 | 4 | 5 | 6
|
16
16
|
|
17
|
+
1 | 2 | 3 | 4 | 5 | 7
|
18
|
+
|
19
|
+
...
|
20
|
+
|
21
|
+
6 | 7 | 8 | 9 | 10 | 11
|
22
|
+
|
23
|
+
数値は最大11までで、全てのパターンが網羅されているものとします。
|
24
|
+
|
17
25
|
|
18
26
|
|
19
27
|
上記数列に対して、以下の数列が存在するかを確認したいです。
|
20
28
|
|
21
29
|
|
22
30
|
|
23
|
-
数列B
|
31
|
+
数列B(チェック元となるテーブルの中身)
|
24
32
|
|
25
33
|
5 | 7 | 11 | 9 | 4
|
26
34
|
|
27
35
|
|
28
36
|
|
37
|
+
|
38
|
+
|
29
39
|
excelでの計算式は以下の通りです。
|
30
40
|
|
31
41
|
```EXCEL
|
@@ -42,7 +52,7 @@
|
|
42
52
|
|
43
53
|
OR(5=4, 7=4, 11=4, 9=4, 4=4),
|
44
54
|
|
45
|
-
OR(5=5, 7=5, 11=5, 9=5, 4=5
|
55
|
+
OR(5=5, 7=5, 11=5, 9=5, 4=5)
|
46
56
|
|
47
57
|
)
|
48
58
|
|
@@ -50,22 +60,28 @@
|
|
50
60
|
|
51
61
|
```
|
52
62
|
|
53
|
-
数列Bを1
|
63
|
+
数列Bを1つずつに分解して、数列Aに含まれるかを確認している計算式です。
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
59
|
-
上記Excelの計算式を、Pythonにて実装しようとしています。
|
69
|
+
上記Excelの計算式を、PythonとPHPにて実装しようとしています。
|
70
|
+
|
71
|
+
|
72
|
+
|
60
|
-
|
73
|
+
---
|
61
|
-
|
62
|
-
|
74
|
+
|
75
|
+
|
76
|
+
|
63
|
-
まず、以下の
|
77
|
+
まず、以下のPythonを実行し、含まれるかどうかの判定をしています。
|
64
78
|
|
65
79
|
|
66
80
|
|
67
81
|
```Python
|
68
82
|
|
83
|
+
def get_nin_id(suffix, num1, num2, num3, num4, num5):
|
84
|
+
|
69
85
|
query = "select id from mst_nin_%s where " % (suffix)
|
70
86
|
|
71
87
|
if (suffix == 's8'):
|
@@ -108,6 +124,46 @@
|
|
108
124
|
|
109
125
|
...
|
110
126
|
|
127
|
+
|
128
|
+
|
129
|
+
cur = con.cursor()
|
130
|
+
|
131
|
+
cur.execute(query)
|
132
|
+
|
133
|
+
rows = cur.fetchall()
|
134
|
+
|
135
|
+
if (rows is None):
|
136
|
+
|
137
|
+
return 0
|
138
|
+
|
139
|
+
else:
|
140
|
+
|
141
|
+
ids = ''
|
142
|
+
|
143
|
+
for row in rows:
|
144
|
+
|
145
|
+
if ids == '':
|
146
|
+
|
147
|
+
ids = str(row['id'])
|
148
|
+
|
149
|
+
else:
|
150
|
+
|
151
|
+
ids += ',' + str(row['id'])
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
return ids
|
156
|
+
|
157
|
+
...
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
# nin s6
|
162
|
+
|
163
|
+
# num1からnum5は、チェック元テーブルの中から取得した物(数列B)
|
164
|
+
|
165
|
+
nin6id = get_nin_id('s6', num1, num2, num3, num4, num5)
|
166
|
+
|
111
167
|
```
|
112
168
|
|
113
169
|
|
@@ -136,7 +192,7 @@
|
|
136
192
|
|
137
193
|
マスタテーブル構造は以下の通です。(mst_nin_s6)
|
138
194
|
|
139
|
-
|
195
|
+
中身は、数列Aのものです。
|
140
196
|
|
141
197
|
![mst_nin_s6](fd7c195f2bbcbf0e82e27647c1ace3a2.png)
|
142
198
|
|
@@ -144,7 +200,7 @@
|
|
144
200
|
|
145
201
|
チェック結果を入れるテーブル構造は以下の通りです。(input_nin_s6)
|
146
202
|
|
147
|
-
中のデータは、mst_nin_s6のid値です。
|
203
|
+
中のデータは、mst_nin_s6のid値(カンマ区切り)です。
|
148
204
|
|
149
205
|
|
150
206
|
|
@@ -152,6 +208,12 @@
|
|
152
208
|
|
153
209
|
|
154
210
|
|
211
|
+
---
|
212
|
+
|
213
|
+
-------------- ここから、PHPでの処理 --------------
|
214
|
+
|
215
|
+
|
216
|
+
|
155
217
|
存在するかを確認するクエリは以下の通です。
|
156
218
|
|
157
219
|
|
@@ -226,7 +288,7 @@
|
|
226
288
|
|
227
289
|
全体の流れをざっくりまとめると
|
228
290
|
|
229
|
-
Pythonでチェック元となるテーブルから値を取得して、mst_nin_s6とぶつけ、input_nin_s6に結果を入れる
|
291
|
+
Pythonでチェック元となるテーブルから値を取得して、mst_nin_s6(数列B)とぶつけ、input_nin_s6に結果を入れる
|
230
292
|
|
231
293
|
その後、PHPで、input_nin_s6をベースとしてmst_nin_s6とjoinして、結果を取得する
|
232
294
|
|
5
typoの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -226,7 +226,7 @@
|
|
226
226
|
|
227
227
|
全体の流れをざっくりまとめると
|
228
228
|
|
229
|
-
P
|
229
|
+
Pythonでチェック元となるテーブルから値を取得して、mst_nin_s6とぶつけ、input_nin_s6に結果を入れる
|
230
230
|
|
231
231
|
その後、PHPで、input_nin_s6をベースとしてmst_nin_s6とjoinして、結果を取得する
|
232
232
|
|
4
処理の流れを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -214,8 +214,20 @@
|
|
214
214
|
|
215
215
|
|
216
216
|
|
217
|
-
---- 16:40編集 ----
|
217
|
+
---- 2017/01/15 16:40編集 ----
|
218
218
|
|
219
219
|
チェック元となるテーブルは、諸事情により公開することができません。申し訳ありません。
|
220
220
|
|
221
221
|
中のデータ構造は、最初の方で定義している、数列Bとなります。
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
---- 2017/01/15 16:50追記 ----
|
226
|
+
|
227
|
+
全体の流れをざっくりまとめると
|
228
|
+
|
229
|
+
Puthonでチェック元となるテーブルから値を取得して、mst_nin_s6とぶつけ、input_nin_s6に結果を入れる
|
230
|
+
|
231
|
+
その後、PHPで、input_nin_s6をベースとしてmst_nin_s6とjoinして、結果を取得する
|
232
|
+
|
233
|
+
です。
|
3
質問への回答追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -134,11 +134,21 @@
|
|
134
134
|
|
135
135
|
|
136
136
|
|
137
|
-
|
137
|
+
マスタテーブル構造は以下の通です。(mst_nin_s6)
|
138
|
-
|
139
|
-
|
140
|
-
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
-
![
|
141
|
+
![mst_nin_s6](fd7c195f2bbcbf0e82e27647c1ace3a2.png)
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
チェック結果を入れるテーブル構造は以下の通りです。(input_nin_s6)
|
146
|
+
|
147
|
+
中のデータは、mst_nin_s6のid値です。
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
![input_nin_s6](8af1be41a7ed64eb9308745f6294f5c8.png)
|
142
152
|
|
143
153
|
|
144
154
|
|
@@ -201,3 +211,11 @@
|
|
201
211
|
|
202
212
|
|
203
213
|
よろしくおねがいします!
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
---- 16:40編集 -----
|
218
|
+
|
219
|
+
チェック元となるテーブルは、諸事情により公開することができません。申し訳ありません。
|
220
|
+
|
221
|
+
中のデータ構造は、最初の方で定義している、数列Bとなります。
|
2
修正依頼に従って一部追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
数列A
|
14
14
|
|
15
|
-
1|2|3|4|5
|
15
|
+
1 | 2 | 3 | 4 | 5 | 6
|
16
16
|
|
17
17
|
|
18
18
|
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
数列B
|
24
24
|
|
25
|
-
5|7|11|9|4
|
25
|
+
5 | 7 | 11 | 9 | 4
|
26
26
|
|
27
27
|
|
28
28
|
|
@@ -134,7 +134,7 @@
|
|
134
134
|
|
135
135
|
|
136
136
|
|
137
|
-
テーブル構造は以下の通です。
|
137
|
+
チェック元となるテーブル構造は以下の通です。
|
138
138
|
|
139
139
|
|
140
140
|
|
@@ -184,6 +184,14 @@
|
|
184
184
|
|
185
185
|
|
186
186
|
|
187
|
+
実際にほしいデータは
|
188
|
+
|
189
|
+
2,3,4,1 | 4,5 | 5,6,7 | 7,8,9 | <empty> | 11
|
190
|
+
|
191
|
+
です。
|
192
|
+
|
193
|
+
|
194
|
+
|
187
195
|
なぜこのようなことが起こるのでしょうか。
|
188
196
|
|
189
197
|
|
1
書式の改善、一部ミスの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
数列A
|
14
14
|
|
15
|
-
1|2|3|4|5
|
15
|
+
1|2|3|4|5
|
16
16
|
|
17
17
|
|
18
18
|
|
@@ -34,15 +34,15 @@
|
|
34
34
|
|
35
35
|
AND(
|
36
36
|
|
37
|
-
OR(5=1,7=1,11=1,9=1,4=1),
|
37
|
+
OR(5=1, 7=1, 11=1, 9=1, 4=1),
|
38
38
|
|
39
|
-
OR(5=2,7=2,11=2,9=2,4=2),
|
39
|
+
OR(5=2, 7=2, 11=2, 9=2, 4=2),
|
40
40
|
|
41
|
-
OR(5=3,7=3,11=3,9=3,4=3),
|
41
|
+
OR(5=3, 7=3, 11=3, 9=3, 4=3),
|
42
42
|
|
43
|
-
OR(5=4,7=4,11=4,9=4,4=4),
|
43
|
+
OR(5=4, 7=4, 11=4, 9=4, 4=4),
|
44
44
|
|
45
|
-
OR(5=5,7=5,11=5,9=5,4=5
|
45
|
+
OR(5=5, 7=5, 11=5, 9=5, 4=5
|
46
46
|
|
47
47
|
)
|
48
48
|
|