이것은 another question에 후속,하지만 난 영장이 자신의 질문에 생각 :TIMESTAMPDIFF에서 필드를 '단위'로 사용할 수 있습니까?
내가 TIMESTAMPDIFF()
의 '단위'매개 변수로 필드를 사용할 수 있습니까? 나는 그것을 실행할 때
SELECT foo FROM table t LEFT JOIN frequencies f USING (frequency_id)
WHERE MOD(TIMESTAMPDIFF(f.frequency_code, t.date, NOW()), t.frequency_num) = 0
이 구문 오류를 가져옵니다
예를 들어, 여기에 조각입니다. 이제 f.frequency_code
을 실제 단어 - MINUTE
, DAY
등으로 바꾸면 작동합니다. 그러나 그것들은 정확하게 현재 f.frequency_code
에 포함 된 단어입니다.
해당 위치에서 테이블 필드를 사용할 수 없습니까?
, 나는 어떤을 추측 않을거야 - 당신이 구문 오류가 발생하는 경우 , 분명히 mysql은 그 자리에서 fieldname을 얻으려고하지 않는다. 한 가지 가능한 대안은 간격 이름을 반환하는 하위 쿼리를 시도하는 것입니다.하지만 그 중 하나가 작동하지 않을지는 의심 스럽습니다. 대부분의 MySQL 파서는 리터럴 간격 이름과 그 리터럴 간격 이름 만 찾길 기대하고 있습니다. –
당신은 항상 중첩 된'IF' 구조로 작업 할 수 있습니다. 그러나 그것은 끔찍한 코드를 생성 할 것입니다. 무슨 일이 일어나는지 보길 원합니다 - 가능하지는 않지만 가능합니다. –