Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WHERE + IF, Включение/не включение условий выборки 
:(
    Опции темы
romantik
Дата 2.3.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.2.2007
Где: Kiev

Репутация: нет
Всего: 1



задача в чем:
нужно добавить еще одно условие в выборку (WHERE) взависимости от логического выражения.
насколько я знаю, IF возвращает значение, если логическое выражение TRUE
но возвращает ли оно его не в SELECT, а просто как часть самого SQL-запроса?

пожалуйста, помогите.  smile

Добавлено @ 23:56 
БД - MySQL где-то 5й версии

Добавлено @ 00:01 
Код

IF(tbl_sites_limit.max != -1,\"tbl_sites_limit.max != (SELECT COUNT(id) FROM tbl_counter WHERE datetime > '".$mydate."' AND bannerid IN (SELECT id FROM tbl_banners WHERE siteid = mysiteid)) AND \",\"\")


Добавлено @ 00:02 
что-то мне предсказывает... что данные возвращаються в селект, а не в структуру запроса...
PM MAIL WWW ICQ   Вверх
skyboy
Дата 3.3.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



объясни толком, что ты хочешь сделать. приведенный тобой запрос - полон? чесно говоря, не представляю, чтоб такое работало...

PM MAIL   Вверх
romantik
Дата 3.3.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.2.2007
Где: Kiev

Репутация: нет
Всего: 1



нет...
есть достаточно очевидная выборка из базы данных.
присутствует несколько статичных условий на выборку.

но одно условие должно быть динамическим, тоесть включаться/не включаться в выборку взависимости от логического выражения.
как это реализовать?
PM MAIL WWW ICQ   Вверх
skyboy
Дата 4.3.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



romantik, а ты запрос разве не на клиенте формируешь(PHP)? почему бы там такие кренделя не выписывать? 
и ещё: почему-то мне видно только один запрос: может, расскажешь, какими должны быть запросы в обоих случаях? 
пока будешь отвечать, вот моя идея:
Код

SELECT `some`.`field1`, `some`.`field2`
FROM `some`
CROSS JOIN `tbl_sites_limit`
WHERE `some`.`field3` = 22 AND `some`.`field4`> 12 AND NOT(`tbl_sites_limit`.`max` = -1) /*это первый случай, когда наше дополнительное условие "some.field4> 12" входит в список условий*/
UNION ALL
SELECT `some`.`field1`, `some`.`field2`
FROM `some`
CROSS JOIN `tbl_sites_limit`
WHERE `some`.`field3` = 22 AND `tbl_sites_limit`.`max` = -1 /*это второй случай, когда наше дополнительное условие "some.field4> 12" НЕ входит в список условий*/

замечание по коду: ты бы брал имена полей(поле "max" - d первую очередь, это зарезервированное слово) да и таблиц тоже в обратные апострофы "`". А то хлопот не оберешься...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.