Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn các hàng duy nhất trong một nhóm hai khả năng

Điều này khá giống với những gì bạn đã viết, nhưng sẽ khá nhanh vì KHÔNG TỒN TẠI sẽ hiệu quả hơn, trong trường hợp này, hơn là KHÔNG VÀO ...

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. Cách tải lên nhiều hình ảnh trong laravel

  2. CAST thành DECIMAL trong MySQL

  3. Làm cách nào để đặt giá trị mặc định của trường là '0000-00-00 00:00:00'?

  4. Xóa các hàng trùng lặp trong MySQL (Bỏ qua khóa chính)

  5. Mysqldump được khởi chạy bởi cron và bảo mật mật khẩu