回答編集履歴
5
非推奨関数について追記
test
CHANGED
@@ -25,3 +25,7 @@
|
|
25
25
|
UPDATE hoge_item SET no = (@i := @i +1) WHERE fuga_id = xxx ORDER BY id;
|
26
26
|
|
27
27
|
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
あと別件になりますが、mysql_queryはPHP 5.5.0で非推奨になり、PHP 7で削除されていますので業務で使用するのであれば別関数への移行をおすすめします。
|
4
SQLn
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
```sql
|
10
10
|
|
11
|
-
UPDATE hoge_item SET no = no-1 WHERE fuga_id = xxx AND no > (SELECT no FROM hoge_item WHERE
|
11
|
+
UPDATE hoge_item SET no = no-1 WHERE fuga_id = xxx AND no > (SELECT no FROM hoge_item WHERE id = xxx);
|
12
12
|
|
13
13
|
```
|
14
14
|
|
3
修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
※削除前に実行する
|
8
8
|
|
9
|
-
```
|
9
|
+
```sql
|
10
10
|
|
11
11
|
UPDATE hoge_item SET no = no-1 WHERE fuga_id = xxx AND no > (SELECT no FROM hoge_item WHERE fuga_id = xxx);
|
12
12
|
|
2
追記
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
noを手動で入れ替えたり設定しているのであれば、削除対象のnoより大きいものを全て-1するのが手っ取り早いと思います。
|
2
|
+
|
3
|
+
注意点としてupdateからdeleteまでトランザクションを使用してデータに不整合が起きないようにしてください。
|
2
4
|
|
3
5
|
|
4
6
|
|
1
途中で送信してしまった
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
もしnoが単純にデータ投入順なだけであれば、連番の振り直し
|
17
|
+
もしnoが単純にデータ投入順なだけであれば、連番の振り直しという手段もあります。
|
18
18
|
|
19
19
|
```sql
|
20
20
|
|