我試圖根據IF條件更改where子句。查詢失敗,出於某種原因。我將不勝感激任何幫助。if-else在mysql中查詢where子句
謝謝!
SELECT
c.id AS course,
cr.id AS criteriaid,
u.id AS userid,
ue.timestart AS otimestart,
(ue.timestart + cr.enrolperiod) AS ctimestart,
ue.timecreated AS otimeenrolled,
(ue.timecreated + cr.enrolperiod) AS ctimeenrolled
FROM
{user} u
INNER JOIN
{user_enrolments} ue
ON ue.userid = u.id
INNER JOIN
{enrol} e
ON e.id = ue.enrolid
INNER JOIN
{course} c
ON c.id = e.courseid
INNER JOIN
{course_completion_criteria} cr
ON c.id = cr.course
LEFT JOIN
{course_completion_crit_compl} cc
ON cc.criteriaid = cr.id
AND cc.userid = u.id
WHERE
cr.criteriatype = 5
AND c.enablecompletion = 1
AND cc.id IS NULL
AND
(
IF (ue.timeextension IS NULL)
(ue.timestart > 0 AND ue.timestart + cr.enrolperiod < ?
OR ue.timecreated > 0 AND ue.timecreated + cr.enrolperiod < ?)
ELSE
(ue.timestart > 0 AND ue.timestart + ue.timextension < ?
OR ue.timecreated > 0 AND ue.timecreated + ue.timeextension < ?)
)
「某些原因」幾乎總是不夠好;-)什麼是*精確*錯誤信息或問題? –