2017-02-22 47 views
1

Это не относится к какому-либо определенному языку, но логике. Я просто использовать SQL в качестве примера: У меня 2 положения:И и приоритет OR

(1) где a1 и a2

(2) где А1 или А2

В случае (1), будет запрашивать стоп право после проверки A1 является ложным? В случае (2) запрос будет останавливаться сразу после проверки A1, является ли истиной?

Пожалуйста, отметьте это как продублированное, если кто-то спросил раньше.

Спасибо

ответ

6

У вас неправильная идея. SQL-запросы представляют собой набор результатов, а не обработку. Таким образом, предложение where не представляет собой определенный набор инструкций. Предложения могут быть выполнены в любом порядке.

Тем не менее, большинство баз данных делают короткое замыкание таких оценок. Поэтому выполнение обычно останавливается с первым предложением, которое определяет условие (true или false).

2

То, что вы описываете, называется «короткое замыкание», и я уверен, что это зависит от языка, но я знаю, что JavaScript и ColdFusion ведут себя так, как вы описываете.

SQL зависит от реализации:

https://stackoverflow.com/a/909770/2913684