HAVING WHERE sad'n'ass

Redjik

Джедай-мастер
Имется
Код:
SELECT (big circle distance) as distance FROM ...
HAVING distance > 50
Так же имеется вагон условий в WHERE.

можно как-нибудь логическое ИЛИ между ними замутить?

типа WHERE is_sad = 1 OR HAVING distance > 50?

или единственный вариант (big circle distance) делать как subquery, чтобы оно в WHERE впихнулось?

ЗЫ. поправьте название пжлст - очень хочется спать =(
 

Redjik

Джедай-мастер
У меня в WHERE большой кусок ИЛИ логики
по хорошему с where было бы так
Код:
SELECT addresses ... WHERE distance > 50 OR (is_exact_address = 0 AND (city=:city OR (country = :country)))
Сгруппируй по is_sad и запихни в HAVING. Иначе оно не имеет смысл.
так у меня записи сгруппируются, а мне выборка нужна
 

WMix

герр M:)ller
Партнер клуба
PHP:
select ...
having is_sad = 1 OR distance > 50
мальчик, девочка, какая в ж**у разница
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
я сам поздно сообразил, что это тоже самое (но до having будет больше данных чем еслиб сразу урезали по where)
 

Redjik

Джедай-мастер
только группировать не надо, ага
а так - видимо ночь - туплю

тупо засунул expr в where вместо select
 

WMix

герр M:)ller
Партнер клуба
и че будет ?
Код:
+--------+---------+
| is_sad | bla     |
+--------+---------+
|      1 | bla     |
|      0 | bla bla |
+--------+---------+
 

Вурдалак

Продвинутый новичок
WMix, я тебе открою страшный секрет, но в HAVING ты можешь юзать только сгруппированные поля (проекцию). Если оно явно в GROUP BY не присутствует, то это означает, что группировка есть неявная.
 

WMix

герр M:)ller
Партнер клуба
ах да, точно, я пооткидывал неизвестность... сорь, (и сгруппировать тоже надо)
приятно всеже что разница есть :)
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
>поправьте название пжлст
:D

(big circle distance) - это вычисление расстояния? вынеси в хранимую процедуру и не мучайся, ставь в where,
только на объем данных смотри, у меня был случай - сделал фильтр событий в регионе по формуле заказчика, через пол-года чувак приходит и ругается что сайт тупит, а я смотрю - там тригонометрия по 300 тысяч записей отрабатывает
 
Последнее редактирование:

Redjik

Джедай-мастер
>поправьте название пжлст
:D

(big circle distance) - это вычисление расстояния? вынеси в хранимую процедуру и не мучайся, ставь в where,
только на объем данных смотри, у меня был случай - сделал фильтр событий в регионе по формуле заказчика, через пол-года чувак приходит и ругается что сайт тупит, а я смотрю - там тригонометрия по 300 тысяч записей отрабатывает
я помню про этот случай =))
тут пока не до этого... тут прототип и
 
Сверху