мне надо вытащить из базы 50 записей идущих подряд один за другим (по id).
как-то не хочется писать запрос такого типа:
mysql_query("SELECT * FROM `table` WHERE id = '16' AND id = '17' AND id = '18' AND id = '19' ... AND id = '65'");
ну в общем я думаю понятно. есть ли другой нормальный способ это выполнить?
кстати запрос динамический. тоесть даем ему число а он от этого числа берет 50 записей по id.
всем спасибо...
Спустя 5 минут, 32 секунды (17.07.2010 - 13:08) dr_Lev написал(а):
select * from `table` where id >=16 order by id limit 50
select * from `table` where id between 16 and 65
Спустя 10 минут, 7 секунд (17.07.2010 - 13:18) MatrixGod написал(а):
dr_Lev
спасибо.
а если у меня скажем есть 100 записей в таблице а я начинаю выборку скажем начиная от 70-й. как сделать так что если скрипт дошел до предела (до 100) начнется выборка с первого id? тоесть в этом случае он возьмет от 70 до 100 и от 1 до 20.
мне нужно в любом случае выводить 50 записей.
спасибо.
а если у меня скажем есть 100 записей в таблице а я начинаю выборку скажем начиная от 70-й. как сделать так что если скрипт дошел до предела (до 100) начнется выборка с первого id? тоесть в этом случае он возьмет от 70 до 100 и от 1 до 20.
мне нужно в любом случае выводить 50 записей.
Спустя 8 минут, 6 секунд (17.07.2010 - 13:26) dr_Lev написал(а):
select * from (
select * from `table` where id >= 70 order by id
union all
select * from `table` order by id limit 50) t limit 50
Спустя 5 минут, 18 секунд (17.07.2010 - 13:31) MatrixGod написал(а):
dr_Lev
что-то не клеется, как-то не правильно он выдает результаты...
что-то не клеется, как-то не правильно он выдает результаты...

Спустя 2 часа, 38 минут, 36 секунд (17.07.2010 - 16:10) MatrixGod написал(а):
может кто знает другой способ?
Спустя 6 минут, 12 секунд (17.07.2010 - 16:16) Basili4 написал(а):
попробуй так я не пробывал
select * from `table` where id (between 70 and 100) and (between 1 and 70)
select * from `table` where id (between 70 and 100) and (between 1 and 70)
Спустя 14 минут, 52 секунды (17.07.2010 - 16:31) MatrixGod написал(а):
Basili4
и что? он возьмет все 100...
и что? он возьмет все 100...
Спустя 6 минут, 28 секунд (17.07.2010 - 16:38) Basili4 написал(а):
select * from `tabl1` where id between 70 and 100 UNION select * from `tabl1` where id between 1 and 70 вот так выбрал что нужно
Спустя 4 минуты, 2 секунды (17.07.2010 - 16:42) dr_Lev написал(а):
select *, case when id>=70 then 1 else 2 end as param from `table` order by param, id limit 50
Спустя 59 секунд (17.07.2010 - 16:43) MatrixGod написал(а):
Basili4
да но если я в этот же запрос вместо 70 вставлю 30 например, мне надо чтоб он просто взял 50 записей (до 80).
а с таким запросом это не получается...
да но если я в этот же запрос вместо 70 вставлю 30 например, мне надо чтоб он просто взял 50 записей (до 80).
а с таким запросом это не получается...
Спустя 11 минут, 2 секунды (17.07.2010 - 16:54) dr_Lev написал(а):
а ты попробуй... даже если 0 поставишь, последний запрос сработает отлично
Спустя 7 минут, 10 секунд (17.07.2010 - 17:01) MatrixGod написал(а):
dr_Lev
последний твой или Basili4а?
последний твой или Basili4а?
Спустя 3 часа, 56 минут, 58 секунд (17.07.2010 - 20:58) Basili4 написал(а):
MatrixGod
dr_Lev у него в запросе limit стоит я его пост увидел свой править не стал
dr_Lev у него в запросе limit стоит я его пост увидел свой править не стал
Спустя 27 минут, 9 секунд (17.07.2010 - 21:25) MatrixGod написал(а):
Basili4, dr_Lev,
спасибо, работает.
теперь если не лень поясните как это произошло.
или что такое "then 1 else 2 end", и что означает запитая после "select *"???
спасибо, работает.
теперь если не лень поясните как это произошло.
или что такое "then 1 else 2 end", и что означает запитая после "select *"???
Спустя 25 минут, 56 секунд (17.07.2010 - 21:51) dr_Lev написал(а):
select * - означает выбрать все поля, после запятой идет вычисляемое поле `param`, несуществующее в таблице... значение этого поля вычисляется - 1, если id >= 70, и 2 - если нет... дальше по этому полю стоит сортировка, и в результате получаем строки id = 70,71,...,100,1,2,...,19