2014-12-21 2 views
0

을 만드는 동안은 코드입니다 :MySQL의 오류 # 1064 저장 프로 시저 여기에

IF(selected_item_id IS NOT NULL AND selected_category IS NOT NULL) THEN 

    IF(selected_item_id <> "all") THEN 

     SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name' FROM items i, categories c WHERE i.category_id = c.id AND i.id LIKE selected_item_id; 

    ELSE IF(selected_item_id = "all" AND selected_category <> "all" AND selected_category in (SELECT name FROM categories)) THEN 

     SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name' FROM items i, categories c WHERE i.category_id = c.id AND c.name LIKE selected_category; 

    ELSE IF(selected_item_id = "all" AND selected_category = "all") THEN 

     SELECT i.id, i.name, i.summary, i.description, i.location, c.name AS 'category_name' FROM items i, categories c WHERE i.category_id = c.id; 

    END IF 

END IF 

내가 그것을 저장하려고하면 내가 얻을 :

MySQL은 말했다 : # 1064 근처 'END IF'를 라인 17 (그것이 마지막 END IF 임)

도움을 많이 받으실 수 있습니다.

답변

1

ELSE와 IF 사이에 공간을 추가 할 필요가 없습니다. 자세한 내용은 this을 참조하십시오. 세미콜론으로 끝내십시오.

+0

여전히 같은 ... –

+1

업데이트 된 답변보기. – SMA

+0

확인. 이제 작동합니다. 나는 이것을 허용하는 한 빨리 대답하도록하겠다. –