SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.12.2014 16:00:41

SoNik))
Участник
Зарегистрирован: 04.12.2014
Сообщений: 3

UPDATE ADN WHERE

Здравствуйте форумчане!

Столкнулся с проблемой и не знаю, как правильно реализовать подобный запрос:


SET NAMES 'cp1251', @b := 0

UPDATE account SET rating = (@b := @b + 1) WHERE @b < 101 AND connecttime + INTERVAL 5 DAY > NOW() ORDER BY os DESC
 

Суть проблемы:
Изменяются все поля, а нужно лишь 100, которые подходят условию: connecttime + INTERVAL 5 DAY > NOW() и остановить изменения когда изменено 100 полей с данным условием.

Неактивен

 

#2 04.12.2014 16:30:30

SoNik))
Участник
Зарегистрирован: 04.12.2014
Сообщений: 3

Re: UPDATE ADN WHERE

Вообще я просто не знаю, LIMIT 100 будет работать только с теми полями, которые подходят под условие, или со всеми, проверенными

Неактивен

 

#3 04.12.2014 16:53:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: UPDATE ADN WHERE

Посмотрите
http://sqlinfo.ru/forum/viewtopic.php?id=64
и здесь
http://stackoverflow.com/questions/1513 … t-in-mysql
еще хорошая мысль приведена.

Необходимости использовать переменные здесь как-то не вижу, если честно.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#4 04.12.2014 19:20:13

SoNik))
Участник
Зарегистрирован: 04.12.2014
Сообщений: 3

Re: UPDATE ADN WHERE

Да я уже сделал, пораньше вашего ответа. Надеюсь правильно)

UPDATE account SET rating = (@b := @b + 1) WHERE connecttime + INTERVAL 5 DAY > NOW() ORDER BY os DESC LIMIT 100

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson