(sqlite) как выбрать строки выше и ниже определенной строки? без использования их item_id - PullRequest
0 голосов
/ 04 августа 2020

Это то, что я знаю:

Я могу использовать WHERE для выбора диапазона item_id по моему выбору (например, если мой «средний» элемент - item_id = 8, я бы поставил: WHERE item_id >= 5 AND item_id <= 10). Но есть сценарий, в котором я буду получать элементы из определенной категории, и это приведет к тому, что item_id выйдет за пределы диапазона (например, item_id = 1,5,9,14,22,27,31,39), и мой текущий WHERE statement больше не будет работать.

есть ли способ выбрать элементы в диапазоне без использования их item_id, а просто их номера строки в базе данных. (ie. Если у меня item_id = 22 в качестве середины, я могу выбрать item_id = 9,14,22,27,31 на основе приведенного выше примера.)

Кажется, я не могу найти существующий ответ, который подходит для моей проблемы, поэтому Я разместил этот вопрос. Заранее спасибо!

РЕДАКТИРОВАТЬ

and my current WHERE statement will no longer work.

если у меня есть элементы с 1 по 40, и я выбираю элемент 8 как средний, у меня будет оператор WHERE, например это:

примечание: это написано в java, используя preparedStatement

    original database:
item 1
item 2
item 3
item 4
... 
item 40
    
    WHERE item_id >= (selectedItem -2) AND item_id <= (selectedItem +2)
        
        output:
        item 6
        item 7
        item 8
        item 9
        item 10

, но, если у меня есть:

original database:
item 9
item 14
item 22
item 27
item 31
item 40

WHERE item_id >= (selectedItem -2) AND item_id <= (selectedItem +2) // our selectedItem = 22

output:

item 22

// and thats all, because the range is only 20 - 25

, поэтому он выиграл не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...