質問編集履歴
3
一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -41,8 +41,8 @@
|
|
41
41
|
# LIMIT 4, 2; # 3ページ目 →【ID=1,6 が取得される】
|
42
42
|
```
|
43
43
|
しかし、1ページ目の読み込み直後に下記の `UPDATE` がされた場合、2ページ目で
|
44
|
-
|
44
|
+
【ID=3,2 が取得される】 でなく
|
45
|
-
|
45
|
+
【ID=2,1 が取得される】 になってしまい、ID=3 が取得からモレるという問題です。
|
46
46
|
```SQL
|
47
47
|
UPDATE `comments`
|
48
48
|
SET like_count = 20, updated_at = '2022-02-01 01:00:01'
|
2
誤字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
■次ページの取得
|
61
61
|
https://use-the-index-luke.com/ja/sql/partial-results/fetch-next-page
|
62
62
|
|
63
|
-
続いて `OFFSET` を用いず次のように `WHERE` でのアプローチを試みました。`?`には直前ページの最後のコンテンツの`count
|
63
|
+
続いて `OFFSET` を用いず次のように `WHERE` でのアプローチを試みました。`?`には直前ページの最後のコンテンツの`like_count`を入れ、ページ訪問日時を`update_at`に入れます。これにより重複は防げますが、新たなモレが生じてしまい実現できませんでした。
|
64
64
|
```SQL
|
65
65
|
WHERE
|
66
66
|
( like_count = ? AND ID < ? ) OR
|
1
リンクの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,6 +48,8 @@
|
|
48
48
|
SET like_count = 20, updated_at = '2022-02-01 01:00:01'
|
49
49
|
WHERE ID = 4;
|
50
50
|
```
|
51
|
+
以上の問題はこちらで実行して頂けますのでよろしければどうぞ。
|
52
|
+
http://sqlfiddle.com/#!9/3d1ac7/1
|
51
53
|
|
52
54
|
### 試したこと
|
53
55
|
まず検索で次の記事を見つけましたが、いずれもソートカラムが可変でないケースに限るように見受けられます。
|