Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите SQL запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
antobra
Отправлено: 18 Ноября, 2012 - 17:30:42
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Ребят, понадобилось такая команда...

Есть SQL запрос:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM one.two LIMIT 100


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

Подскажите? Плюсик в спасибо))

(Отредактировано автором: 18 Ноября, 2012 - 17:33:15)

 
 Top
LIME
Отправлено: 18 Ноября, 2012 - 17:54:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




limit 300
и фетчить по 3 раза в цикле
?
 
 Top
EuGen Администратор
Отправлено: 18 Ноября, 2012 - 19:40:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Подозреваю, что будет наподобие:
CODE (SQL):
скопировать код в буфер обмена
  1. SET @ORDER=-1;
  2. SELECT *, (@ORDER:=@ORDER+1) AS order_id FROM tmp HAVING order_id%3=0;

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 18 Ноября, 2012 - 19:44:13
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




при условии непрерывных id?
 
 Top
EuGen Администратор
Отправлено: 18 Ноября, 2012 - 19:45:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




При условии любых id (важно лишь то, что "каждая третья" - имеется ввиду по возрастанию id; ну, или не id - а поля, соответствующего _rowid)
Запрос выше не имею возможности проверить, но думаю, если и ошибся, то в начальном значении (тогда отсев пойдет не с 1-й реальной строки)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 18 Ноября, 2012 - 20:36:20
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ааа...да

(Отредактировано автором: 18 Ноября, 2012 - 20:37:27)

 
 Top
EuGen Администратор
Отправлено: 18 Ноября, 2012 - 20:38:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




LIME пишет:
а если не 1 не кратен 3ем?

Как это?
Посмотрите внимательнее - на кратность не проверяется ни одно из полей в таблице. На кратность проверяется переменная, которая определена вне основного запроса и которая увеличивается на +1 для каждой строке (@order:=@order+1) - так образом, псевдополе order_id есть не что иное, как порядковый номер строки в выборке, то есть он - последователен. Именно поэтому можно указать HAVING order_id%3=0 - ведь номер будет всегда идти по порядку.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
antobra
Отправлено: 20 Ноября, 2012 - 10:59:49
Post Id


Посетитель


Покинул форум
Сообщений всего: 327
Дата рег-ции: Окт. 2010  


Помог: 1 раз(а)




Спасибо, плюсанул) Ох уж этот SQL))))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB