回答編集履歴
1
修正
answer
CHANGED
@@ -40,13 +40,14 @@
|
|
40
40
|
WHERE `id` = 5;
|
41
41
|
```
|
42
42
|
|
43
|
-
この時、id=
|
43
|
+
この時、id=2〜4のレコードは、`order_number` を+1すればいい。
|
44
44
|
移動したレコードの表示順が「5 → 2」に変化することから、
|
45
45
|
|
46
46
|
```sql
|
47
47
|
UPDATE `sample` SET `order_number` = `order_number` + 1
|
48
|
-
WHERE `order_number` > 2
|
48
|
+
WHERE `order_number` >= 2
|
49
49
|
AND `order_number` < 5
|
50
|
+
AND `id` != 5
|
50
51
|
```
|
51
52
|
|
52
53
|
### 例2
|
@@ -58,13 +59,14 @@
|
|
58
59
|
WHERE `id` = 2;
|
59
60
|
```
|
60
61
|
|
61
|
-
この時、id=3〜
|
62
|
+
この時、id=3〜5のレコードは、`order_number` を-1すればいい。
|
62
63
|
移動したレコードの表示順が「2 → 5」に変化することから、
|
63
64
|
|
64
65
|
```sql
|
65
66
|
UPDATE `sample` SET `order_number` = `order_number` - 1
|
66
67
|
WHERE `order_number` > 2
|
67
|
-
AND `order_number` < 5
|
68
|
+
AND `order_number` <= 5
|
69
|
+
AND `id` != 2
|
68
70
|
```
|
69
71
|
|
70
72
|
どちらも2つのクエリを実行すれば良いということになります。
|