sql >> Database teknologi >  >> RDS >> Mysql

mySQL 'where name NOT IN' virker ikke?

Brug ikke NOT IN med underforespørgsler. Den har den forkerte semantik, hvis en værdi i underforespørgslen er NULL . I så fald er NOT IN evalueres aldrig til TRUE, så ingen rækker returneres overhovedet.

Brug i stedet 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. Adgang til en fil DSN fra Java

  2. AWS RDS Parameter Group ændrer ikke MySQL-kodning

  3. Rediger et SQL Server Agent Job (T-SQL)

  4. vælg koordinater ved andre borde