sql >> Databasteknik >  >> RDS >> Mysql

mySQL 'där namn INTE I' fungerar inte?

Använd inte NOT IN med underfrågor. Den har fel semantik om något värde i underfrågan är NULL . I så fall visas NOT IN utvärderas aldrig till TRUE, så inga rader returneras alls.

Använd istället NOT EXISTS :

SELECT p.id, p.name
FROM players p
WHERE p.this = 1 AND 
      NOT EXISTS (SELECT 1
                  FROM players_online po
                  WHERE po.name = p.name AND po.this = 'that'
                 )
ORDER BY RAND()
LIMIT 3, 6;



  1. Skillnaden mellan LIKE och ~ i Postgres

  2. Hur aktiverar jag LOAD DATA LOCAL INFILE i Propel?

  3. Vilken typ av JOIN som ska användas

  4. Återställ woocommerce-ordrar