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

Избиране на уникални редове в набор от две възможности

Това е доста подобно на това, което сте написали, но трябва да бъде доста бързо, тъй като НЕ СЪЩЕСТВУВА е по-ефективно, в този случай, отколкото НЕ В...

mysql> select * from foo;
+----+-----+
| id | col |
+----+-----+
|  1 | Bar | 
|  1 | Foo | 
|  2 | Foo | 
|  3 | Bar | 
|  4 | Bar | 
|  4 | Foo | 
+----+-----+

SELECT id
     , col
  FROM foo f1 
 WHERE col = 'Foo' 
  OR ( col = 'Bar' AND NOT EXISTS( SELECT * 
                                     FROM foo f2
                                    WHERE f1.id  = f2.id 
                                      AND f2.col = 'Foo' 
                                 ) 
     ); 

+----+-----+
| id | col |
+----+-----+
|  1 | Foo | 
|  2 | Foo | 
|  3 | Bar | 
|  4 | Foo | 
+----+-----+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как се свързвате с множество MySQL бази данни на една уеб страница?

  2. Грешка в MySQL 1153 – Получих пакет, по-голям от байтове „max_allowed_packet“

  3. Недефиниран индекс:потребителско име в C:\wamp\www\Website\storeadmin\admin_login.php..и същото за парола

  4. Вземете пътя на дървото в MySQL таблицата

  5. PHP/mysql получава броя на засегнатите редове на израза UPDATE