sql >> Base de Datos >  >> RDS >> Mysql

Mysql donde 1 =0 confusión

Esto depende del tipo de operaciones booleanas en las que esté trabajando. Si desea agregar un número variable de AND declaraciones, luego usa una declaración que invariablemente se evalúa como verdadera, como 1 = 1 . Por otro lado, si quieres hacer lo mismo con OR declaraciones, entonces debe usar una declaración que se evalúe como falsa, como 1 = 0 .

Digamos que tiene una variable booleana x con un valor de verdad indeterminado (puede ser verdadero o falso. No lo sabe). Ahora, si encuentra el valor de x AND false , obtienes false , independientemente del valor de x es.

Por otro lado, si miras x OR true , obtendrás true . Nuevamente, esto es independiente del valor de verdad de x .

En su declaración, desea que el valor codificado de forma rígida no tenga efecto en la lógica de la consulta. Dado que false OR a OR b OR c es lógicamente equivalente a a OR b OR c , la declaración codificada de forma rígida no tiene ningún efecto. En el otro caso, true AND a AND b AND c es equivalente a a AND b AND c .