0

私のページは次のようになります。

| | << 戻るボタン | 画像 | 進むボタン >> |

すべての行には一意の ID 番号があり、その ID を使用してデータベースから結果を取得しています。

<< 戻るボタンはハイパーリンクであり、前の行 ID が含まれている必要があります。進むボタン >> には、次の行 ID が含まれている必要があります。

ID列には AUTO_INCREMENTのINTEGER 値があります。

クエリをどのように記述すればよいですか? 負の値を使用できますか? 何かのようなもの:

SELECT * FROM `db` ORDER BY `ID` DESC LIMIT -1, 1

それは機能しますか?

4

2 に答える 2

1

負の値を使用することはできませんがidWHERE句で current を使用して、それより小さい値を見つけ、並べ替え、 ID DESC3 に制限することができますauto_increment。id 列は降順で並べ替えられるため、最初の 3 つの値は、現在選択されているIDが対象となります。

SELECT * 
FROM `db`
WHERE `ID` < [your_current_id]
ORDER BY `ID` DESC
LIMIT 3

同様に、次の 3 つを取得するには、使用>して昇順に並べ替えます。

SELECT * 
FROM `db`
WHERE `ID` > [your_current_id]
ORDER BY `ID` ASC
LIMIT 3
于 2012-07-14T15:15:34.647 に答える
1

いいえ、できません。

ページネーションの ID のみを使用する場合は、次のようなものです。

next 10 records:
    select ... where id > $current_id order by id ASC limit 10
previous 10 records:
    select ... where id < $current_id order by id DESC limit 10

するでしょうが、ID で順番にブラウズすることしか許可されていません。適切なページネーション機能は、ソートしているフィールドとナビゲーションの関連付けを切り離します。PAGE* NUMBERSを前/次のリンクに保存し、ページネーション セット内のレコードの総数を使用して、LIMIT で使用する行オフセットを計算します。

于 2012-07-14T15:16:59.297 に答える