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

Điều kiện trong MYSQL mệnh đề where

Bạn có thể làm điều này với ANDOR miễn là bạn sử dụng đủ dấu ngoặc đơn.

Ngoài ra, tôi giả định rằng activities.OrderBy có thể là null. Nếu không đúng như vậy, bạn có thể bỏ kiểm tra null:

SELECT activities.*, 
       activitytypes.orderby 
FROM   activities 
       LEFT OUTER JOIN activitytypes 
                    ON activities.typeid = activitytypes.typeid 
WHERE  activities.userid = 86 
       AND activities.typeid NOT IN ( 5, 10, 11, 12, 19 ) 
       AND ( ( activities.orderby = 1 
               AND activities.starttime >= '2013-08-26 04:00:00' 
               AND activities.endtime <= '2013-08-27 04:00:00' ) 
              OR ( ( activities.orderby IS NULL 
                      OR activities.orderby != 1 ) 
                   AND activities.activitydate = '2013-08-26' ) ) 
ORDER  BY activitytypes.orderby, 
          activities.starttime 

Ngoài ra, nếu bạn vẫn muốn sử dụng CASE , bạn chỉ cần đóng CASE của mình câu lệnh sử dụng END , như thế này:

SELECT          activities.*, 
                activitytypes.orderby 
FROM            activities 
LEFT OUTER JOIN activitytypes 
ON              activities.typeid = activitytypes.typeid 
WHERE           activities.userid = 86 
AND             activities.typeid NOT IN ( 5, 10, 11, 12, 19 ) 
AND             ( 
                  CASE 
                  WHEN activities.orderby = 1 THEN
                    activities.starttime >= '2013-08-26 04:00:00' AND activities.endtime <= '2013-08-27 04:00:00'
                  ELSE
                    activities.activitydate = '2013-08-26' 
                  END
                ) 
ORDER BY        activitytypes.orderby, 
                activities.starttime



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hành vi của MySQL về CẬP NHẬT KHÓA KÉP BẬT cho nhiều trường DUY NHẤT

  2. MYSQL group_concat tương đương trong Sybase ASE?

  3. MySQL Workbench:Lỗi trong truy vấn (1064):Lỗi cú pháp gần 'VISIBLE' ở dòng 1

  4. Cách tính toán sự khác biệt giữa hai ngày trong MySQL

  5. Dịch vụ MySQL57 trên Máy tính cục bộ bắt đầu và sau đó dừng lại