LEAD и LAG в MySQL для выбора предыдущего номера и следующего номера - PullRequest
0 голосов
/ 18 декабря 2018

Если я щелкну ссылку для номера 5, я хочу иметь возможность получить ссылку номера 4 и 6. Не добавлять непосредственно 1 и вычитать 1, если значения num каждой строки не последовательные, такие как 1, 3,5, 6, 7, 9 и т. Д. Кроме того, я хотел бы одновременно использовать опцию поиска по ключевым словам.И, кроме того, он будет использоваться в среде Mybatis.Как я могу превратить источник ниже в MySql?

<select id="getData2" parameterType="cafeDto" resultType="cafeDto">
    SELECT result1.*
    FROM (SELECT num, writer, title, content, viewCount, regdate,
            LAG(num, 1, 0) OVER(ORDER BY num DESC) prevNum,
            LEAD(num, 1, 0) OVER(ORDER BY num DESC) nextNum
          FROM board_cafe
        <where>
            <if test="writer != null">
                OR writer LIKE '%'||#{writer}||'%'
            </if>
            <if test="title != null">
                OR title LIKE '%'||#{title}||'%'
            </if>
            <if test="content != null">
                OR content LIKE '%'||#{content}||'%'
            </if>
        </where>
          ORDER BY num DESC) result1
    WHERE num=#{num}
</select>   

enter image description here

...