Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 293
от 28.10.2007, 14:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 453, Экспертов: 53
В номере:Вопросов: 1, Ответов: 4


Вопрос № 106489: Добрый день! Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна... Или это зависит от ...

Вопрос № 106.489
Добрый день!
Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна...
Или это зависит от настройки СУБД?
Отправлен: 23.10.2007, 15:03
Вопрос задал: Hoolio (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Powoditch konstantin
Здравствуйте, Hoolio!
Вы не совсем правы. Если, допустим, первый операнд 1, то проверка не доходит до второго. Если 0, то проверяется следующий, и т.д. То есть OR возвращает 1 только в случае того как в условии будет найдена первая 1. (имеется в виду булевы значения).
Ответ отправил: Powoditch konstantin (статус: 7-ой класс)
Ответ отправлен: 23.10.2007, 15:24
Оценка за ответ: 5

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Hoolio!
В СУДБ логические выражения работают по обычной логике (AND, OR)
При этом если выражение состоит из нескольких операторов, проверку на истиность пройдут все.
Исключение составляет значение содержащее Null, при нем логические выражения ведут себя по правилам конкретной СУБД.
Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 23.10.2007, 16:51
Оценка за ответ: 5

Отвечает: Nomadfromx2007
Здравствуйте, Hoolio!
Небольшое замечание по Oracle - проверка идет с конца и как только встретиться выражение, дающее TRUE, то остальные проверки уже не выполняются
Ответ отправил: Nomadfromx2007 (статус: 1-ый класс)
Ответ отправлен: 24.10.2007, 05:38
Оценка за ответ: 5

Отвечает: Челноков Виктор Альбертович
Здравствуйте, Hoolio!

Наиболее часто лог. операторы используются в предложении where для выборки определенных значений и поэтому проверяются все выражения.
Пример:
tabl1
id int

select * from tabl1
where (id=3) or (id=7)
выбираются строки со значениями id 3 или 7
от настроек СУБД это не зависит.

Ответ отправил: Челноков Виктор Альбертович (статус: 3-ий класс)
Ответ отправлен: 24.10.2007, 07:44
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное