Как составить запрос чтобы сразу в нем поменять значение

FRIE

Новичок
Как составить запрос чтобы сразу в нем поменять значение

помогите пожалуйста с запросом, гдето такое видел что можно сделать запрос к базе к определенному полю и сразу же изменить его значение, чтобы не создавать 2 запроса . и быстрее ли так будет работать?
 

Adelf

Administrator
Команда форума
FRIE
у тебя тормозят что ли сильно два запроса?
 

FRIE

Новичок
просто у меня возник вопрос - зачем городить 2 запроса когда можно 1 , я же не знал что так можно, а вчера гдето увидел это и ссылку потерял, и подумал, может такой запрос быстрее будет работать?

-~{}~ 11.06.10 18:52:

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

Adelf

Administrator
Команда форума
не пригодиться :)
Возможно ты имеешь ввиду запрос replace.. но он нестандартный.. и слегка не подходит под описание.. в оракле вроде можно сделать както так:
update ... set field = field + 1 returning field into :fieldValue - но эт вроде только оракл. Да забей ты на это...
 

FRIE

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

LONGMAN

Dark Side of the Moon..
:) Дай закурить :) Кстати, настолько я знаю мускул не умеет одним запросом обновить и выбирать данных
 

FRIE

Новичок
Автор оригинала: pilot911
yandex: update on duplicate key ?
спасибо большое!


вот попробовал, смотрите что получилось

первый запрос , в нем мы сразу увеличиваем значение
1) UPDATE `tovar` SET `rating`=`rating`+5,`kolvote`=`kolvote`+1 WHERE `tov_id`=2 ( запрос занял 0.0018сек )


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

2) SELECT `rating` `kolvote` FROM `tovar` WHERE `tov_id`=2 ( запрос занял 0.0015 сек. )
UPDATE `tovar` SET `rating`=25,`kolvote`=6 WHERE `tov_id`=2 ( запрос занял 0.0013 сек. )

в итоге 0.0018 сек и 0.0028 сек, разница очевидна =)))))))
 

dimagolov

Новичок
очевидно лишь твое неумение формулировать свои мысли, ничего более.
 
Сверху