Подтвердить что ты не робот

Операция MySQL AS в WHERE

У меня есть база данных MySQL. Я использую SELECT AS для измерения "расстояния" между двумя точками. Я хочу использовать ту же переменную "distance", которую я создал в SELECT как условие WHERE.

SELECT first_name.last_name AS name WHERE name="John Doe"

Каков наилучший способ для этого?

4b9b3361

Ответ 1

Возможно, вы захотите рассмотреть вопрос о том, чтобы поместить свое условие в предложение HAVING, а не в предложение WHERE.

Подробнее о предложении HAVING см. http://dev.mysql.com/doc/refman/5.5/en/select.html.

Ответ 2

Алиасы столбцов могут ссылаться только на предложение ORDER BY (поскольку они еще не существуют в части WHERE. Вы можете сделать это (хотя я не рекомендую его, поскольку он может быть медленнее.)

select name from
(select concat(firstname, ' ', lastname) as name from yourtable)
where name = 'John Doe'

Или вы можете это сделать:

select (firstname, ' ', lastname) as name from yourtable
where (firstname, ' ', lastname) = 'John Doe';

Единственными столбцами, к которым у вас есть доступ в предложении WHERE, являются столбцы в предложении FROM.