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

Форум MySQL

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

 

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

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

тема: Выборка каждой n-записи
 
 автор: Trackman   (19.06.2013 в 11:44)   письмо автору
 
 

Доброго времени суток,

Как можно выбрать из таблицы каждую n-запись? ( вторую, ...15-ю.. итд).
Таблица:
кол-1,кол2,
1 0
2 0
3 0
4 0
1 1
2 1
3 1
4 1

К примеру - нужно выбрать каждую 2 запись из кол 1, группируя, по кол 2..

  Ответить  
 
 автор: Sfinks   (19.06.2013 в 12:34)   письмо автору
 
   для: Trackman   (19.06.2013 в 11:44)
 

Это учебная задача?

Тогда попробуйте сами проанализировать мой ответ в теме:
http://softtime.ru/forum/read.php?id_forum=3&id_theme=89748

Принцип тот же самый.

  Ответить  
 
 автор: Trackman   (19.06.2013 в 12:48)   письмо автору
 
   для: Sfinks   (19.06.2013 в 12:34)
 

Задача придумана самому себе, чтобы не грузить тот же php, а использовать mysql.

в Вашем ответе есть ИДы по которым можно что-то склеить. У меня же - одна таблица, и значения в ней сгруппированы только по 2-й колонке( в моём примере таблицы "кол 2 "- номер "группы", а "кол-1" значение).

Можно записать:


SELECT col1
FROM table
GROUP BY col2


и при этом получить то, что мне нужно, но только первые значения групп, а вот как достать остальные ( только n-й ряд в группе.) ? Была идея использовать переменные, но пока не ясно как.

  Ответить  
 
 автор: Sfinks   (19.06.2013 в 13:07)   письмо автору
 
   для: Trackman   (19.06.2013 в 12:48)
 

> в Вашем ответе есть ИДы по которым можно что-то склеить
Не важно! Если вы поймете как оно работает, то сможете решить и свою задачу по тому же принципу.

> Была идея использовать переменные, но пока не ясно как.
Можно и с переменными. И даже так:
- Если строки могут дублироваться, т.е. может быть 2 полностью одинаковых строки, то только с переменными и решите. Первый вариант тогда не прокатит.

> Можно записать:
SELECT col1 
FROM table 
GROUP BY col2
> и при этом получить то, что мне нужно, но только первые значения групп

А это вообще самая распространенная ошибка начинающих SQLщиков.
Любая адекватная СУБД на этот запрос выдаст ошибку.
Но не MySQL.
Она вам выдаст не первые значения групп, а одно любое, которое сочтет нужным. Можете в этом убедиться, если будуте выполнять этот запрос не на только что созданной таблице, а поудаляете из нее строки, потом подобавляете, пооптимизируете и т.д.... Т.е. если создадите условия, как будто таблица реально рабочая, то у вас результат выборки будет переодически меняться. А это не допустимо, если у вас конечно не стоит задачи съэмитировать RAND()

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

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