teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

そのままにする部分が抜けていたので追加

2016/08/08 14:15

投稿

kutsulog
kutsulog

スコア985

answer CHANGED
@@ -41,10 +41,17 @@
41
41
  , A.userID
42
42
  ) T2
43
43
  SET
44
+ T1.ID = MID(T1.ID, 1, 1)
44
- T1.ID = MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
45
+ + MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
46
+ + MID(T1.ID, 3, 1)
45
47
  WHERE T1.ID = T2.ID
46
48
  AND T1.userID = T2.userID
47
49
 
48
50
  ```
49
51
 
50
- UPDATEのFROM副問い合わせはすっかりSQLServerのノリで書いてましたf(^-^;
52
+ UPDATEのFROM副問い合わせはすっかりSQLServerのノリで書いてましたf(^-^;
53
+
54
+ ---
55
+
56
+ 追記
57
+ そのまま残すべきところを忘れていたので追加しました

1

指摘を受けて修正

2016/08/08 14:14

投稿

kutsulog
kutsulog

スコア985

answer CHANGED
@@ -16,4 +16,35 @@
16
16
  WHERE sampleTable.ID = C.ID
17
17
  AND sampleTable.userID = C.userID
18
18
 
19
- ```
19
+ ```
20
+
21
+
22
+ ---
23
+
24
+ KotoriMaturiさんの指摘を受けて修正しました
25
+ (GROUP BYもぬけてましたし)
26
+
27
+ ```SQL
28
+ UPDATE
29
+ sampleTable T1
30
+ , (
31
+ SELECT
32
+ A.ID
33
+ , A.userID
34
+ , count(*) + 1 AS cnt
35
+ FROM sampleTable A
36
+ JOIN sampleTable B
37
+ ON A.ID = B.ID
38
+ AND A.userID > B.userID
39
+ GROUP BY
40
+ A.ID
41
+ , A.userID
42
+ ) T2
43
+ SET
44
+ T1.ID = MID('abcdefghijklmnopqrstuvwxyz', T2.cnt, 1)
45
+ WHERE T1.ID = T2.ID
46
+ AND T1.userID = T2.userID
47
+
48
+ ```
49
+
50
+ UPDATEのFROM副問い合わせはすっかりSQLServerのノリで書いてましたf(^-^;