may*_*ʎɐɯ 6 mysql sql stored-procedures
我在MySQL中有以下存储过程
SELECT *
FROM rewards
LEFT JOIN tasks
ON tasks.id = rewards.task_id
AND rewards.received_at = received_Date
WHERE tasks.kid_id = kid_Id
ORDER BY tasks.id ASC;
Run Code Online (Sandbox Code Playgroud)
存储过程有2(IN)输入,kid_Id(整数)和received_Date(日期),它工作正常.
问题:我想要的是,如果received_Date是,NULL那么我想查看所有日期,这可能吗?
换句话说:
在AND rewards.received_at = received_Date如果我通过应只工作received_Date,否则返回所有日期.
尝试这个。使用OR运算符 inwhere clause获取所有行,如果received_Date is null
SELECT *
FROM rewards
LEFT JOIN tasks
ON tasks.id = rewards.task_id
WHERE tasks.kid_id = kid_Id
AND (rewards.received_at = received_Date or received_Date = 0)
ORDER BY tasks.id ASC;
Run Code Online (Sandbox Code Playgroud)