Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Внутри WHERE не работают вычисляемые поля? (Maxim) 06/11/2003 - 07:18:53
      Re: Внутри WHERE не работают вычисляемые поля? (Maxim) 06/11/2003 - 07:29:06
      Re: Внутри WHERE не работают вычисляемые поля? (Ahilles) 06/11/2003 - 10:05:05
      Re: Внутри WHERE не работают вычисляемые поля? (Maxim) 06/11/2003 - 13:05:50
      Re: Внутри WHERE не работают вычисляемые поля? (visor123) 06/11/2003 - 22:38:37

> Original message text:
> From: Maxim - 06/11/2003 - 07:18:53
> Subject:Внутри WHERE не работают вычисляемые поля?
> -----------------
> Имеем такую таблицу:
> CREATE TABLE `User` (
> `idUser` int(10) unsigned NOT NULL auto_increment,
> `chrLogin` varchar(32) NOT NULL,
> `chrPassword` varchar(32) binary NOT NULL,
> `dtBirthday` date default NULL,
> PRIMARY KEY (`idUser`)
> );
>
> Пробуем выполнить запрос:
> SELECT dtBirthday, YEAR(dtBirthday) AS intYear
> FROM User
> ORDER BY intYear
>
> Всё работает, как ожидается. Пробуем другой запрос:
>
> SELECT dtBirthday, YEAR(dtBirthday) AS intYear
> FROM User
> WHERE intYear>1980
>
> Выдает ошибку: "Unknown column 'intYear' in 'where clause'"
>
> Вопрос: это глюк, особенность реализации mysql, или особенность всего языка SQL?
>


From: Maxim - 06/11/2003 - 07:29:06
Subject:Внутри WHERE не работают вычисляемые поля?
-----------------
Конечно можно переписать запрос как:

SELECT dtBirthday, YEAR(dtBirthday) AS intYear
FROM User
WHERE YEAR(dtBirthday)>1980

Тогда всё хорошо работает но это просто для примера, в реальности мне нужны более сложные вычисления :)

SELECT dtBirthday, TO_DAYS(CONCAT(IF(DAYOFYEAR(CURDATE())<DAYOFYEAR(dtBirthday), YEAR(CURDATE()), YEAR(CURDATE())+1), '-', MONTH(dtBirthday), '-', DAYOFMONTH(dtBirthday)))-TO_DAYS(CURDATE()) AS intDaysToNextBirthday
FROM User
WHERE intDaysToNextBirthday BETWEEN 1 AND 3

Переписывать это выражение два раза мне кажется, как-то не правильно. Может мне кто-нибудь помочь?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
11439



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |