2014-12-21 106 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

好的。現在它可以工作。我會盡快答覆,只要它允許 –