我有一個查詢,我有以下錯誤返回,但是我無法找到問題,mysql的組,看不到它
您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'HAVING DATE_FORMAT(NOW(),'%Y') - DATE_FORMAT(
candidates
。DOB
,'%Y') - (DATE_')在第14行使用正確的語法
這是我的查詢,
SELECT `candidates`.`candidate_id`,
`candidates`.`first_name`,
`candidates`.`surname`,
`candidates`.`DOB`,
`candidates`.`gender`,
`candidates`.`talent`,
`candidates`.`location`,
`candidates`.`availability`,
DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d'))
as `age`,
`candidate_assets`.`url`,
`candidate_assets`.`asset_size`
FROM `candidates`
LEFT JOIN `candidate_assets` ON `candidate_assets`.`candidates_candidate_id` = `candidates`.`candidate_id`
WHERE `candidates`.`availability` = 'yes'
AND candidates.talent = "presenter"
AND candidates.gender = "male"
HAVING DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) <= 39
AND HAVING DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(`candidates`.`DOB`, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`candidates`.`DOB`, '00-%m-%d')) <=29
GROUP BY `candidates`.`candidate_id`
是什麼問題,我不是MySQL的
的忠實用戶
**請不要在這樣的單行上發佈查詢。空白是你的朋友。 – JNK
@ sico87看起來好像你只是根據年份來計算年齡。你知道,我出生在五月,我的年齡在五月變化,而不僅僅是一年。考慮使用'DateDiff'。 – MPelletier
@MPelletier,您可能需要滾動到右側 - 年齡計算包含一個布爾表達式,用於檢查當前日期是否比年份中的早於「DOB」。 DateDiff只能以天而不是年來返回值。 –