powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по IF в условии WHERE
10 сообщений из 10, страница 1 из 1
Вопрос по IF в условии WHERE
    #34367848
qbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qbn
Гость
SELECT blablabla FROM tbl_blablabla,tbl_banners
WHERE
tbl_banners.off = 'on' AND
IF(tbl_blablabla.max != -1,NULL,'тут еще какоето условие на выборку AND')
tbl_banners.show = 'hide'

ругаеться на иф... что неправильно? ведь иф возвращает при неистине третий аргумент...
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34367974
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если дальше по логике: третий аргумент - строка.

получаем:
where 'третий аргумент'
или
where null (при выполнении)

и то и то невесело.
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34367980
qbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qbn
Гость
тогда как взависимости от условия IF добавлять еще одно условие на выборку?
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34367985
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qbnтогда как взависимости от условия IF добавлять еще одно условие на выборку?

ты говоришь "добавлять условие", а сам чего добавляешь?
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34367990
qbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qbn
Гость
условие IF
и условие WHERE в выборке - это два разных условия :)
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34368076
qbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qbn
Гость
advесли дальше по логике: третий аргумент - строка.

получаем:
where 'третий аргумент'
или
where null (при выполнении)

и то и то невесело.

но... есть же еще несколько условий...
я вот не пойму... иф возвращает строковые данные внутрь запроса, или как?
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #34370113
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qbnя вот не пойму... иф возвращает строковые данные внутрь запроса, или как?if-то может и возвращает строковые данные внутрь запроса, но кто тебе сказал, что MySQL сможет догодаться о том, что эти возвращаемые строковые данные есть ничто иное, как дополнительные условия фильтрации данных?
То, что ты пытаешься реализовать, элементарно делается при помощи OR.
Как небольшая илюстрация по теме:
Код: plaintext
1.
2.
3.
4.
5.
6.
select blablabla
  from table_name t
 where <некий параметр> = <определенное значение  1 > and <условие № 1  на выборку>
       or
       <некий параметр> = <определенное значение  2 > and <условие № 2  на выборку>
       or
       <некий параметр> = <определенное значение  3 > and <условие № 3  на выборку>
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вопрос по IF в условии WHERE
    #39567662
mrkid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

У меня немного другой вопрос по теме.

есть процедура с параметрами
PROCEDURE `report7`(in startDate varchar(255), in finishDate varchar(255))

есть запрос
Select ...
from....
where 1=1
and .....
and .....
and .....

так вот, необходимо IF условие, если есть не нуловый, например, startDate , то добавить в where условие параметр, например, and r.date >=startDate

Здесь пока простой пример, а так вообще там в where условии должны сложные выборки падать...
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #39567669
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrkidнеобходимо IF условие, если есть не нуловый, например, startDate , то добавить в where условие параметр, например, and r.date >=startDate
Код: sql
1.
AND (r.date >= startDate OR startDate IS NULL)

либо, скажем
Код: sql
1.
AND (r.date >= COALESCE(startDate, r.date))

или там
Код: sql
1.
AND (CASE WHEN startDate IS NULL THEN 1 ELSE r.date >= startDate END)



В общем, вариантов масса...
...
Рейтинг: 0 / 0
Вопрос по IF в условии WHERE
    #39567692
mrkid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, попробую!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вопрос по IF в условии WHERE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]