MySQL select statement with CASE or IF ELSEIF? Not sure how to get the result

后端 未结 3 989
温柔的废话
温柔的废话 2020-11-27 15:37

I have a two tables. One has manufacturer information and includes the regions where they can sell. The other has their products for sale. We have to limit visibility of

3条回答
  •  南方客
    南方客 (楼主)
    2020-11-27 16:19

    Syntax:

    CASE value WHEN [compare_value] THEN result 
    [WHEN [compare_value] THEN result ...] 
    [ELSE result] 
    END
    

    Alternative: CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...]

    mysql> SELECT CASE  WHEN 2>3 THEN 'this is true' ELSE 'this is false' END; 
    +-------------------------------------------------------------+
    | CASE  WHEN 2>3 THEN 'this is true' ELSE 'this is false' END |
    +-------------------------------------------------------------+
    | this is false                                               | 
    +-------------------------------------------------------------+
    

    I am use:

    SELECT  act.*,
        CASE 
            WHEN (lises.session_date IS NOT NULL AND ses.session_date IS NULL) THEN lises.location_id
            WHEN (lises.session_date IS NULL AND ses.session_date IS NOT NULL) THEN ses.location_id
            WHEN (lises.session_date IS NOT NULL AND ses.session_date IS NOT NULL AND lises.session_date>ses.session_date) THEN ses.location_id
            WHEN (lises.session_date IS NOT NULL AND ses.session_date IS NOT NULL AND lises.session_date= now()
    LEFT JOIN session AS ses ON  ses.activity_id = act.id AND  ses.session_date >= now()
    WHERE act.id
    

提交回复
热议问题