select count(id) as us, us+2 as t_us from user

botan

Новичок
select count(id) as us, us+2 as t_us from user

Можно такое как-нибудь сделать?
т.е. что бы одно поле считалось как функция другого, которое отсуствует в таблицах, но считается в запросе ?
 

Bred Vilchec

Новичок
а что мешает получить значение us php-скриптом и уже в нем прибавить к нему двойку?
 

botan

Новичок
всё на несколько порядков сложнее.
там немного не count(id) а во втором поле не совсем (us+2)
 

chira

Новичок
botan
всё на несколько порядков сложнее.
там немного не count(id) а во втором поле не совсем (us+2)
ты что в прядки играешь или это конфиденциальная информация?
спрашивай конкретнее
 

Bred Vilchec

Новичок
botan
Ну введи ты SQL-перемнные в запросе, и уже от них танцуй, раз уж у тебя там так все сложно. Надеюсь про пользовательские переменные в MySQL рассказывать не надо?
 

botan

Новичок
:)
Да нечего мне скрывать.
Вычисление "count(id)" - весьма сложная и трудоемкая задача.
"(us+2)" - то же.
Хочется всё сделать в MySQL
Можно сделать так : (count(id)+2) as t_us - но это заставит count(id) выполняться ещё раз.

З.Ы. count(id) выглядит так:
[SQL]
ROUND((sum(m.rcddata.price*m.rcddata.quantity*(1-IFNULL(m.rcddata.dsc/100,0))) + IFnull(m.delivery.cost,0)/if(m.delivery.currency_id=1,1,m_ro.currency_rate.bill_rate) - IFnull(m.rcds.dsc,0))*(m_ro.currency_rate.bill_rate),2) AS order_sum,
[/SQL]

-~{}~ 06.05.05 16:31:

Автор оригинала: Bred Vilchec
botan
Ну введи ты SQL-перемнные в запросе, и уже от них танцуй, раз уж у тебя там так все сложно. Надеюсь про пользовательские переменные в MySQL рассказывать не надо?
Не поверишь -никогда не пользовался в MySQL.
дай ссылку куда-нибудь плиз :)
 

chira

Новичок
Можно сделать так : (count(id)+2) as t_us - но это заставит count(id) выполняться ещё раз.
ты попробовал? и увидел, что сильно тормозит?
из-за второго count, MySQL не будет второй раз просматривать таблицу.
 

botan

Новичок
Автор оригинала: chira
ты попробовал? и увидел, что сильно тормозит?
из-за второго count, MySQL не будет второй раз просматривать таблицу.
Мой count(id) - по ходу, выполняется ещё раз.
наверное потому, что
очередной столбец это функция от этого от "count(id)".
Не говоря уже о том, что у этой функции в 3 местах "count(id)" как параметр подставляется :(
 

botan

Новичок
стараниями
Bred Vilchec
Он теперь совсем подругому выглядит :)
З.Ы. Касательно переменных, никто не знает, как такое вот может быть:
[SQL]
ROUND( (
@a:=m.smth.smth as aa,
@b:=sum( m.rcddata.price * m.rcddata.quantity * ( 1 - IFNULL( m.rcddata.dsc / 100, 0 ) ) ) + IFnull( m.delivery.cost, 0 ) / IF (
m.delivery.currency_id = 1, 1, m_ro.currency_rate.bill_rate
) - IFnull( m.rcds.dsc, 0 ) ) * ( m_ro.currency_rate.bill_rate ) , 2
) AS bb,
@a as aaa,
@b as bbb
[/SQL]
Может выдавать
aa|bb|aaa|bbb
1 2 1 NULL
3 4 3 NULL
и т.д. ?
 

Bred Vilchec

Новичок
botan
Просили же привести запрос полностью, это раз.
Во-вторых, прочитай внимательней мануал, обращая внимание на использование одной переменной несколько раз в запросе, там есть примеры, когда работать будет, а когда нет.
И вообще, сделать все одним запросом - идея-фикс у многих здешних вопрошающих, может для простоты и удобства разбить запрос на два-три? Причем скриптом получать результаты каждого запроса необязательно, можно просто занести их в переменные и использовать дальше.
 
Сверху