Задавайте вопросы, мы ответим
Вы не зашли.
Всем доброго!
Запрос работает в связке с PHP, но в данном случае, логику надо реализовать именно в MySQL. Логика такая - если есть значение, то условие выбора должно быть одним, а если нет значения, то другим.
Пытаюсь запрос в меру своих куцых знаний сделать, получается так:
Отредактированно ComeOn (23.12.2022 19:29:24)
Неактивен
В условие IN можно передавать массив значений.
Другими словами говоря можно
select * from t where ref_id IN (select id from ref WHERE тра-та-та), но нельзя
select * from t where ref_id IN (select id, another_field from ref WHERE тра-та-та)
Неактивен
Так у меня в подзапросах и запрашивается только id. Причем, если после IN поставить каждый из этих запросов - работает. Дело в неправильном условии, я так понимаю.
Неактивен
У вас подзапрос внутри функции. if() может вернуть значение, а не массив.
Нужно
Неактивен
vasya написал:
У вас подзапрос внутри функции. if() может вернуть значение, а не массив.
НужноWHERE a2.cck='client' AND a1.state=1 AND
((a4.id IN (подзапрос1) and @cookie='')
or
(a4.id IN (подзапрос2) and @cookie<>''))
Спасибо, так заработало. Только переменную надо до запроса SET делать. Ура, спасибо.
Неактивен