How to apply IF condition with WHERE CLAUSE in this Query Using MySql

database, if-statement, mysql, where-clause

Solution

Try this -

    SELECT *,
           IFNULL((SELECT ur.user_rating FROM user_rating ur 
                   WHERE ur.vid_id = v.id AND ur.user_id = '1000'),'NULL') AS user_rating
    FROM videos v
    WHERE WEEK(v.video_released_date) = IF(WEEK(v.video_released_date) = WEEK(NOW()),WEEK(NOW()),WEEK(NOW())-1) 
    AND  v.is_done = 1
    ORDER BY v.admin_listing ASC;

Problem

This is my MySQL query and I have a week problem in this query. I don't know how to apply IF condition with `WHERE` clause. Query: ``` SELECT *, IFNULL((SELECT ur.user_rating FROM user_rating ur WHERE ur.vid_id = v.id AND ur.user_id = '1000'),'NULL') AS user_rating FROM videos v WHERE WEEK(v.video_released_date) = WEEK(NOW()) AND v.`is_done` = 1 ORDER BY v.admin_listing ASC; ``` I want OR (how do I apply this condition with where clause?) ``` IF( WEEK(v.video_released_date) = WEEK(NOW()) , WEEK(NOW()) , WEEK(NOW())-1) = IF( WEEK(v.video_released_date) = WEEK(NOW()) , WEEK(NOW()) , WEEK(NOW())-1) ``` Briefing If video released date has passed and not match with current week then previous week apply Myself When I was tried myself like this they return me whole data ``` SELECT *, IFNULL((SELECT ur.user_rating FROM user_rating ur WHERE ur.vid_id = v.id AND ur.user_id = '1000'),'NULL') AS user_rating FROM videos v WHERE IF(WEEK(v.video_released_date) = WEEK(NOW()),WEEK(NOW()),WEEK(NOW())-1) = IF(WEEK(v.video_released_date) = WEEK(NOW()),WEEK(NOW()),WEEK(NOW())-1) AND v.`is_done` = 1 ORDER BY v.admin_listing ASC; ``` What am I doing wrong in this query?

Original source