Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mySQL 'di mana nama TIDAK DI' tidak berfungsi?

Jangan gunakan NOT IN dengan subquery. Ini memiliki semantik yang salah jika ada nilai dalam subquery adalah NULL . Dalam hal ini, NOT IN tidak pernah dievaluasi ke TRUE, jadi tidak ada baris yang dikembalikan sama sekali.

Sebagai gantinya, gunakan 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tampilkan setiap Nilai Bidang DISTINCT hanya sekali menggunakan loop

  2. MySQL:SELECT dan COUNT dalam kueri yang sama

  3. Membuat skrip login aman di PHP dan MySQL tanpa HTTPS

  4. MySQL:Buang database dari kueri SQL

  5. AntarmukaError (0, '')