Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql onde 1 =0 confusão


Isso depende do tipo de operações booleanas nas quais você está trabalhando. Se você quiser adicionar um número variável de AND declarações, então você usa uma declaração que invariavelmente é avaliada como verdadeira, como 1 = 1 . Por outro lado, se você quiser fazer o mesmo com OR declarações, então você deve usar uma declaração que seja avaliada como falsa, como 1 = 0 .

Digamos que você tenha uma variável booleana x com um valor de verdade indeterminado (pode ser verdadeiro ou falso. Você não sabe.) Agora, se você encontrar o valor de x AND false , você obtém false , independentemente do valor de x é.

Por outro lado, se você observar x OR true , você obterá true . Novamente, isso é independente do valor de verdade de x .

Em sua declaração, você deseja que o valor codificado permanentemente não tenha efeito na lógica da consulta. Desde false OR a OR b OR c é logicamente equivalente a a OR b OR c , a instrução codificada não tem efeito. No outro caso, true AND a AND b AND c é equivalente a a AND b AND c .