sql >> データベース >  >> RDS >> Mysql

特定の行の周りのSQL選択ウィンドウ

    おそらく、UNIONを使用して、結果を表示する手続き型コードで余分な結果を削除することができます(これにより、エッジ以外の場合は20行が返されます):

    (SELECT 
         * 
    FROM photos
       WHERE ID < #current_id#
       ORDER BY ID DESC LIMIT 10)
    UNION
      (SELECT *
       FROM photos
       WHERE ID >= #current_id#
       ORDER BY ID ASC LIMIT 10)
    ORDER BY ID ASC
    

    編集: le dorfier が提案したように、UNIONの両側で制限を10に増やしました 。

    編集2:Dominicによって提案されたように、最終的な実装をより適切に反映するように変更されました。



    1. LIMITが適用される前に結果カウントを取得するための最良の方法

    2. SSRSで内部パラメータを使用するためのルールは何ですか

    3. 各GROUPBY式には、外部参照ではない列が少なくとも1つ含まれている必要があります

    4. パラメータを使用してOracleで関数を実行する方法