sql >> Databasteknik >  >> RDS >> Mysql

Mysql där 1=0 förvirring

Detta beror på vilken typ av booleska operationer du arbetar med. Om du vill lägga till ett variabelt antal AND satser, då använder du en sats som alltid utvärderas till sann, till exempel 1 = 1 . Å andra sidan, om du vill göra samma sak med OR satser, då bör du använda en sats som utvärderas till falsk, till exempel 1 = 0 .

Låt oss säga att du har en boolesk variabel x med ett obestämt sanningsvärde (det kan vara sant, eller det kan vara falskt. Du vet inte.) Om du nu hittar värdet på x AND false , får du false , oavsett vad värdet på x är är.

Å andra sidan, om du tittar på x OR true , får du true . Återigen, detta är oavsett sanningsvärdet för x .

I ditt uttalande vill du att det hårdkodade värdet inte ska ha någon effekt på logiken i frågan. Eftersom false OR a OR b OR c är logiskt ekvivalent med a OR b OR c , har det hårdkodade uttalandet ingen effekt. I det andra fallet, true AND a AND b AND c är ekvivalent med a AND b AND c .



  1. Sortering Null sist

  2. Hur man får senast infogade ID från tabellen MySQL

  3. Använd mysql-fråga på varje tabell i en databas

  4. pyodbc hanterar inte unicode-data korrekt