Driver86
@Driver86
Немодератор toster.ru

Как передать псевдоним в where?

SELECT `id`, IF(TIMESTAMPDIFF(MINUTE, `onlineAt`, CURDATE()) <= 10, 1, 0) AS `isOnline` FROM `model` WHERE `isOnline` = 1

Неизвестный столбец 'isOnline' в 'where clause'

Почему?
Не ужели надо и в where вычислять TIMESTAMPDIFF?
  • Вопрос задан
  • 217 просмотров
Решения вопроса 2
DevMan
@DevMan
никак.
You can use the alias in GROUP BY, ORDER BY, or HAVING clauses.
Standard SQL disallows references to column aliases in a WHERE clause. This restriction is imposed because when the WHERE clause is evaluated, the column value may not yet have been determined.
https://dev.mysql.com/doc/refman/8.0/en/problems-w...

как вариант - использование HAVING вместо WHERE.
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
да.
Сначала идет выборка записей, а потом вычисление значений в SELECT

(Думаю что MySQL достаточной умный и два раза считать это не будет)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы