Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как выбрать из таблицы значение, каждое 10, 20, 30 и т.д.???
 
 автор: serenya1983   (10.06.2010 в 01:37)   письмо автору
 
 

Как выбрать из таблицы значение, каждое 10, 20, 30 и т.д.???

  Ответить  
 
 автор: sl1p   (10.06.2010 в 02:29)   письмо автору
 
   для: serenya1983   (10.06.2010 в 01:37)
 

возможно
SELECT * FROM tbl WHERE field % 10 = 0

  Ответить  
 
 автор: serenya1983   (10.06.2010 в 04:19)   письмо автору
 
   для: sl1p   (10.06.2010 в 02:29)
 

А что такое field в этом запросе?

Допустим есть таблица tbl с полями id и date, и запрос
SELECT * FROM tbl Where 1 order by date asc
только надо получить не все результаты, а соответственно 10,20,30 и т.д. позиции. Если делать через PHP то получается перебор всей таблицы и это очень долго.

  Ответить  
 
 автор: Trianon   (10.06.2010 в 09:10)   письмо автору
 
   для: serenya1983   (10.06.2010 в 04:19)
 

отбор строк всегда делается перед сортировкой результатов.
совершенно очевидно, что такая странная задача показывает некоторую непродуманность при проектировании схемы БД.

  Ответить  
 
 автор: Axxil   (10.06.2010 в 17:39)   письмо автору
 
   для: serenya1983   (10.06.2010 в 04:19)
 

Если id в вашей таблице монотонно возрастает без разрывов, то запрос, указанный выше, вполне работоспособен

SELECT * FROM tbl WHERE id % 10 = 0


если нет, то введите дополнительное поле, например, cnt куда запишите последовательно возрастающие значения и делайте выборку уже по нему

SELECT * FROM tbl WHERE cnt% 10 = 0


Но в этом слечае надо следить (средствами php) чтоб эта последовательность не рушилась во время вставки/удаления.

PS. Но вообще да, проектирование БД явно хромает

  Ответить  
 
 автор: Valick   (10.06.2010 в 18:15)   письмо автору
 
   для: serenya1983   (10.06.2010 в 01:37)
 

Как выбрать из таблицы значение, каждое 10, 20, 30 и т.д.???
ответте на простой вопрос... зачем нужна именно такая выборка?

  Ответить  
 
 автор: serenya1983   (10.06.2010 в 19:27)   письмо автору
 
   для: Valick   (10.06.2010 в 18:15)
 

Нужно узнать каждого 10,20,30 зарегистрированного на сайте, но нумерации нет, есть только дата регистраии!

  Ответить  
 
 автор: neadekvat   (10.06.2010 в 19:43)   письмо автору
 
   для: serenya1983   (10.06.2010 в 19:27)
 

А что является первичным ключем?

  Ответить  
 
 автор: Trianon   (10.06.2010 в 19:52)   письмо автору
 
   для: serenya1983   (10.06.2010 в 19:27)
 

Если номер регистрации представляет такую информационную ценность, то явную нумерацию следует ввести. О чем Вам и сказал Axill.

  Ответить  
 
 автор: Valick   (10.06.2010 в 20:06)   письмо автору
 
   для: serenya1983   (10.06.2010 в 19:27)
 

я прекрасно понял, что нужно сделать... но спрошу еще раз (скорее всего последний)
зачем это нужно узнать

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования