这是MySQL,它抱怨if语句。也许有人看到了这个错误,因为我认为我看得太久了:

SELECT c.id AS id, (p.validFor * 30) AS validFor, p.validFrom as validFrom,
date(FROM_UNIXTIME(rr.timemodified)) as date,
( CASE
    WHEN date(validFrom) < date(FROM_UNIXTIME(rr.timemodified)) THEN (DATEDIFF(DATE_ADD(FROM_UNIXTIME(rr.timemodified), INTERVAL p.validFor MONTH) , NOW()))
    WHEN date(validFrom) > date(FROM_UNIXTIME(rr.timemodified)) THEN (DATEDIFF(DATE_ADD(validFrom, INTERVAL p.validFor MONTH) , NOW()) )
END )AS daysLeft,
IF (rr.timemodified < g.timemodified, (DATEDIFF(DATE_ADD(FROM_UNIXTIME(g.timemodified), INTERVAL p.validFor MONTH) , NOW())- (validFor * 30.48))) as daysLeft

FROM mdl_readtickbox_responses rr
JOIN mdl_readtickbox r ON r.id = rr.readtickboxid
JOIN mdl_course c ON c.id = r.course
JOIN mdl_procedures p ON p.id = c.idnumber
JOIN mdl_groups_members gm ON gm.userid = rr.userid
JOIN mdl_groups g ON g.id = gm.groupid
WHERE rr.userid = '2'
AND g.courseid = r.course
AND p.status != 'obsolete'
ORDER BY p.priority, daysLeft

最佳答案

您忘记了if语句中的else

关于mysql - mySQL IF语句语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21780825/

10-10 14:24