SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 11.04.2008 21:34:38

Ligalize
Завсегдатай
Зарегистрирован: 06.03.2008
Сообщений: 30

Обновление без загрузки базы!

Хай! У меня вот возник вопросик! А можно ли производить операции с числами без загрузки значения?

Т.е. сейчас чтобы произвести операцию с числом (вычитание, умножение и тд), мне надо сделать 2 запроса
1. я загружаю число которое буду изменять
2. я изменяю число и обновляю запись в базе

Меня интересут, можно ли исключить 1 действие и сразу записать измененное число?

чтонить типа
UPDATE mun SET int=(нынешнее значение+каконить число) WHERE id=1 LIMIT 1


я чайник, не ругайте сильно! )

Неактивен

 

#2 12.04.2008 00:02:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Обновление без загрузки базы!

Можете использовать такой запрос
UPDATE mun SET int=int+10 WHERE id=1 LIMIT 1;

Если требуется другое значение, можете построить подзапрос

UPDATE mun SET int = 10 + (SELECT t.val FROM other_table t WHERE t.id=11 LIMIT 1) WHERE id=1 LIMIT 1;

Неактивен

 

#3 12.04.2008 00:37:54

Ligalize
Завсегдатай
Зарегистрирован: 06.03.2008
Сообщений: 30

Re: Обновление без загрузки базы!

UPDATE users SET bag1=(SELECT bag1 FROM users WHERE id=1 LIMIT 1)+32 WHERE id=1 LIMIT 1
пишу вот так, не срабатывает (


я чайник, не ругайте сильно! )

Неактивен

 

#4 12.04.2008 02:19:04

Ligalize
Завсегдатай
Зарегистрирован: 06.03.2008
Сообщений: 30

Re: Обновление без загрузки базы!

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

вот хочу узнать, можно ли при UPDATE не просто обновить запись, а прибавить к записанному числу, другое число и произвести замену!


я чайник, не ругайте сильно! )

Неактивен

 

#5 12.04.2008 02:23:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Обновление без загрузки базы!

Если одна и та же таблица, то используйте простой синтаксис
UPDATE users SET bag1=bag1+32 WHERE id=1 LIMIT 1

На будущее - если запрос не срабатывает, сообщайте код ошибки.

Неактивен

 

Board footer

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