0

これはmysqlにあります:


**そして 2 つの制限で戻りたい:**
1- "SELECT * FROM table ORDER BY point DESC LIMIT 0,2"//return 'google' & 'jsfiddle'
2- "SELECT * FROM table ORDER BY point DESC LIMIT 2,2"//return 'stackoverflow' & 'msn'
3- "INSERT INTO table SET id = 11, name = 'gmail', point = 101 "
4- "SELECT * FROM table ORDER BY point DESC LIMIT 4,2"//return 'msn' & 'emra'
* *番号 4 の「msn」が重複しています。4番の戻り値「emra」と「facebook」が必要です。**
「id」を保存でき、そのidの後にレコードを返すクエリが必要です。

[編集] 別の方法で質問させてください:

私たちはこの記録を持っています:

id, name, point
4, 'google', 100
6, 'yahoo', 100
3, 'gmail', 100
8, 'ymail', 100
2, 'fb', 100

ID:3 があり、この ID の後にあるレコードを選択したい (この例では 'ymail', 'fb')



これはscorlling(Facebookのような)によるajaxロードコンテンツですが、刻々と変化するユーザーの最大ポイントについてです。

4

1 に答える 1

2

私があなたの質問を正しく理解していれば(私は疑問に思っています)、最初のNを取得した後、検索基準に一致する追加のトップ結果を取得する方法が必要です...

これに関する主な問題は、新しいレコード (#3 で示したもの) が以前の結果の間のどこかに移動する可能性があるため、既に取得したレコードが (順番に) 古いものになる可能性があることです。

したがって、本当にこれが必要な場合は、次の 2 つのことを行う必要があります。

  1. すでに取得したすべての ID を記憶し、オフセットを指定せずにクエリで提供NOT IN(list of already fetched ids)します(のみ)WHERELIMIT 2

  2. それをフェッチした後、新たにフェッチした結果の量をリストに追加し、必要に応じて並べ替えます (ある種の挿入ソート)。

于 2012-07-11T11:14:26.420 に答える