SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 13.08.2011 00:58:25

coxa
Участник
Зарегистрирован: 13.08.2011
Сообщений: 2

select a*b as c, c*2 as d from tbl

select a*b as c, c*2 as d from tbl_name
Можно ли сделать что-то подобное? Чтоб не вычислять каждый раз или чтоб не писать слишком много.
Может кто-то посоветует как это грамотно сделать с использованием всяких хранимых функций

Неактивен

 

#2 13.08.2011 05:01:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: select a*b as c, c*2 as d from tbl

Не понял в чем вопрос. Чтобы не вычислять каждый раз нужно хранить результат вычисления.
Что подразумевается под "не писать слишком много"?

Неактивен

 

#3 13.08.2011 22:21:27

megamanx
Участник
Зарегистрирован: 09.08.2011
Сообщений: 20

Re: select a*b as c, c*2 as d from tbl

если ты о создании пользовательских переменных во время выборки, тогда
select @c:=a*b, @d:=@c*2, @d+@c as e from tbl_name

Отредактированно megamanx (13.08.2011 22:23:33)

Неактивен

 

#4 14.08.2011 01:53:17

coxa
Участник
Зарегистрирован: 13.08.2011
Сообщений: 2

Re: select a*b as c, c*2 as d from tbl

megamanx написал:

если ты о создании пользовательских переменных во время выборки, тогда
select @c:=a*b, @d:=@c*2, @d+@c as e from tbl_name

Да!!! Спасибо огромное! Это похоже то что я искал, но не мог найти и то что не мог доходчиво объяснить!!!!

Неактивен

 

#5 14.08.2011 11:41:12

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: select a*b as c, c*2 as d from tbl

coxa написал:

megamanx написал:

если ты о создании пользовательских переменных во время выборки, тогда
select @c:=a*b, @d:=@c*2, @d+@c as e from tbl_name

Да!!! Спасибо огромное! Это похоже то что я искал, но не мог найти и то что не мог доходчиво объяснить!!!!

Расскажите, очень интересно, чем это лучше чем ваш предложенный вариант select a*b as c, c*2 as d from tbl_name ?

Неактивен

 

#6 14.08.2011 20:26:33

megamanx
Участник
Зарегистрирован: 09.08.2011
Сообщений: 20

Re: select a*b as c, c*2 as d from tbl

наверное тем, что
select a+2 as x, x*100 from table_name выдаст ошибку в случае отсутствия поля x (Code 1054)
select @x := a+2, @x*100 from table_name пройдёт. Нэ?

Отредактированно megamanx (14.08.2011 20:27:49)

Неактивен

 

Board footer

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