Как выбрать строки по диапазону?

Возможный дубликат:
   Выбрать оператор в SQLite, распознающем номер строки

For example, SELECT * FROM table WHERE [row] BETWEEN x AND y

Как это может быть сделано? Я кое-что прочитал, но не нашел ничего конкретного.

Представьте список, в котором вы хотите получить результаты с помощью X-результатов, поэтому для страницы 10 вам понадобятся результаты из строк 10 * X в 10 * X + X. Вместо того, чтобы отображать ВСЕ результаты за один раз

18
Разве вы не имеете в виду колонку? Если вы измените свою [строку] на [столбец], вы получите набор результатов со всеми строками, которые имеют значение в этом конкретном столбце между X и Y. Также см .: w3schools.com/sql/sql_between.asp
добавлено автор Jeroen Vannevel, источник
Извините, если это неясно. Представьте список, в котором вы хотите получить результаты с помощью X-результатов, поэтому для страницы 10 вам понадобятся результаты из строк 10 * X до 10 * X + X. Вместо того, чтобы отображать ВСЕ результаты за один раз.
добавлено автор rtheunissen, источник
я думаю, он хочет что-то вроде «дай мне строку 20 - 50»,
добавлено автор SomeJavaGuy, источник
добавлено автор PhiLho, источник
добавлено автор yatul, источник
что ты хочешь делать?
добавлено автор Stack User, источник

7 ответы

Для MySQL у вас есть ограничение, вы можете запускать запрос как:

SELECT * FROM table limit 100` -- get 1st 100 records
SELECT * FROM table limit 100, 200` -- get 200 records beginning with row 101

For Oracle you can use rownum

См. Синтаксис и использование MySQL select для limit здесь </а>.

Для SQLite у вас есть ограничение , offset . Я не использовал SQLite, но я проверил его на

документации SQLite . Пример для SQLite здесь .

40
добавлено
Это опасно. Я думаю, что вопрос задает диапазон столбцов, а не диапазон подсчета строк
добавлено автор Karue Benson Karue, источник

Вы можете использовать rownum :

SELECT * FROM table WHERE rownum > 10 and rownum <= 20
9
добавлено
@PhiLho кто-то просто добавил тег SQLite :)
добавлено автор Majid Laissi, источник
@ paranoid-android хочет что-то для SQLite. Вы нажали в правильном направлении, поэтому я нашел stackoverflow. com/questions/12233091/& hellip; ответ, который должен сработать для него.
добавлено автор PhiLho, источник

Следуя вашим разъяснениям , вы ищете ограничение:

SELECT * FROM `table` LIMIT 0, 10 

Это отобразит первые 10 результатов из базы данных.

SELECT * FROM `table` LIMIT 5, 5 .

Отобразит 5-9 (5,6,7,8,9)

Синтаксис следует за шаблоном:

SELECT * FROM `table` LIMIT [row to start at], [how many to include] .

SQL для выбора строк, где столбец находится между двумя значениями:

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

See: http://www.w3schools.com/sql/sql_between.asp

Если вы хотите перейти на номер строки, вы можете использовать rownum:

SELECT column_name(s)
FROM table_name
WHERE rownum 
BETWEEN x AND y

Однако нам нужно знать, какой механизм базы данных вы используете, поскольку rownum отличается для большинства.

5
добавлено
это неверно в соответствии с документацией MySQL LIMIT 5, 5 будет возвращать строки 6-10
добавлено автор Anthony, источник
добавлено автор Anthony, источник
он хочет его по диапазону, а не по его ценности, я думаю
добавлено автор SomeJavaGuy, источник

Использование Между условием

SELECT *
FROM TEST
WHERE COLUMN_NAME BETWEEN x AND y ;

Или, используя Just-операторов,

SELECT *
FROM TEST
WHERE COLUMN_NAME >= x AND COLUMN_NAME   <= y;
2
добавлено

Вы пробовали свой собственный код? Это должно работать:

SELECT * FROM people WHERE age BETWEEN x AND y
1
добавлено

Используйте предложение LIMIT :

/* rows x- y numbers */
SELECT * FROM tbl LIMIT x,y;

refer : http://dev.mysql.com/doc/refman/5.0/en/select.html

1
добавлено

Предполагая, что id является основным ключом таблицы:

SELECT * FROM table WHERE id BETWEEN 10 AND 50

За первые 20 результатов

SELECT * FROM table order by id limit 20;
0
добавлено
@paranoid: Я отредактировал свой ответ для вашего запроса ... спасибо
добавлено автор Raghvendra Parashar, источник
id is, но что делать, если записи удалены? Нет гарантии, что идентификатор от 1 до 20 даст вам 20 результатов.
добавлено автор rtheunissen, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)