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

Форум MySQL

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

 

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

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

тема: Использование переменных в запросе UPDATE
 
 автор: Reша   (02.05.2007 в 16:40)   письмо автору
 
 

Нужно в процессе выполнения запроса сохранить значения полей в переменных, чтобы потом при изменении этих полей отталкиваться от их первоначального значения.

UPDATE
    stats,
    options
SET
    @value = stats.value,
    @added = stats.added,

    stats.value = FLOOR(@value * options.multiplier + 0.001) - @value,
    stats.added = FLOOR(@value * options.multiplier + 0.001) - @added
WHERE
    options.id_method = stats.id_method AND
    FLOOR(@value * options.multiplier + 0.001) - @added - @value > 0


Объясняю кусок этого кода - надо в рассчетах в зависимости от значения параметра multiplier этого рассчета подкручивать значение. При этом надо сохранять полученное значение и число, на которое это значение было увеличено.

value - целое поле,
multiplier - дробное (отсюда и "+0.001" - фиксим баг с погрешностью при перемножении целого и дробного поля в мускуле).

Куда нужно впихнуть выделенное жирным, чтобы все заработало?

   
 
 автор: Reша   (03.05.2007 в 09:32)   письмо автору
 
   для: Reша   (02.05.2007 в 16:40)
 

Неужели никто не знает? оО

   
 
 автор: cheops   (03.05.2007 в 13:16)   письмо автору
 
   для: Reша   (02.05.2007 в 16:40)
 

Переменные можно заполнять только в операторах которые извлекают значения из базы данных и специальном операторе SET - в UPDATE обновить переменную не получится.

   
 
 автор: Reша   (03.05.2007 в 14:08)   письмо автору
 
   для: cheops   (03.05.2007 в 13:16)
 

Поясню - как раз я и спрашивал, как мне запомнить переменные. Я не собираюсь их обновлять, мне надо их запомнить один раз, перед обновлением полей таблицы.

Повторяю вопрос: куда сунуть выделенное жирным?

P.S. Пробовал комбинировать запрос с этим оператором SET - выдает ошибки.

   
 
 автор: cheops   (03.05.2007 в 14:44)   письмо автору
 
   для: Reша   (03.05.2007 в 14:08)
 

Значение переменных постоянно или изменяется от строки к строке?

   
 
 автор: Reша   (03.05.2007 в 16:46)   письмо автору
 
   для: cheops   (03.05.2007 в 14:44)
 

А ну если ты в этом плане говоришь, то да... изменяется. Тогда понял.

   
Rambler's Top100
вверх

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