Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql, където 1=0 объркване

Това зависи от типа булеви операции, върху които работите. Ако искате да добавите променлив номер AND изрази, тогава използвате израз, който неизменно се оценява на истина, като например 1 = 1 . От друга страна, ако искате да направите същото с OR изрази, тогава трябва да използвате израз, който се оценява на false, като например 1 = 0 .

Да приемем, че имате булева променлива x с неопределена стойност на истината (може да е вярна или може да е фалшива. Не знаете.) Сега, ако намерите стойността на x AND false , получавате false , независимо каква е стойността на x е

От друга страна, ако погледнете x OR true , ще получите true . Отново, това е независимо от истинската стойност на x .

Във вашето изявление искате твърдо кодираната стойност да няма ефект върху логиката на заявката. Тъй като false OR a OR b OR c е логически еквивалентен на a OR b OR c , твърдо кодираният израз няма ефект. В другия случай, true AND a AND b AND c е еквивалентен на a AND b AND c .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пребройте броя на появяванията на низ в поле VARCHAR?

  2. Групирайте само по дата в колона Datetime

  3. Python:Как да получа време от обект datetime.timedelta?

  4. Намерете следващия месец за дадена дата в mysql

  5. Може ли MySQL Nested Select да върне списък с резултати