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

Bersyarat dalam MYSQL di mana klausa

Anda dapat melakukannya dengan AND dan OR selama Anda menggunakan tanda kurung yang cukup.

Saya juga berasumsi bahwa activities.OrderBy bisa nol. Jika bukan itu masalahnya, Anda dapat menghapus centang nol:

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 

Atau, jika Anda masih ingin menggunakan CASE , Anda hanya perlu menutup CASE pernyataan menggunakan END , seperti ini:

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. Rumus untuk Menghitung Kedekatan Geo

  2. Perkalian data dari baris MySQL

  3. Struts + Hibernate:@SessionTarget tidak berfungsi

  4. MySQL Pilih Grup Catatan Berdasarkan stempel waktu terbaru

  5. Temukan duplikat di tabel yang sama di MySQL