2013-12-12 67 views
0

錯誤1064(42000):您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本使用附近的正確語法手冊「(塞萊 克拉IFNULL(計數(tbl_Product.manufactureId),0) 從tbl_product其中馬努」第5行過程中的錯誤1064

create procedure ManufactureCheckForDelete(p_manufactureid varchar(50)) 
begin 
    declare p_id longtext ; 
    declare p_result longtext; 
    set p_id (select ifnull(count(tbl_Product.manufactureId),0) 
     from tbl_product where manufactureId = p_manufactureId 
    ) ; 

    if p_id <> 0 then 
    set p_result = 'true' ; 
    else 
    set p_result = 'false' ; 
    end if ; 

    select p_result ; 
end 
+4

可能是最糟糕的問題標題有史以來 – bgusach

+0

問題的標題是不是很清楚分配。嘗試具體。 –

+0

* = *運算符在哪裏? 'set p =(...' –

回答

2

您需要使用=運算結果從查詢

set p_id (select ifnull(count(tbl_Product.manufactureId),0) 
     ^^ here 
     from tbl_product where manufactureId = p_manufactureId 
    ) ; 

set p_id= (select ifnull(count(tbl_Product.manufactureId),0) 
     ^^ here 
     from tbl_product where manufactureId = p_manufactureId 
    ) ; 
+1

謝謝..你有鷹的眼睛..; ) – Nisar

2

你的錯誤說你必須在select

空間...語法使用近'(塞萊克拉 IFNULL ...

而您在選擇前缺少=

set p_id = (select ... 
     ^-------------here 
+0

我在我的查詢中沒有空格..你可以重複上面的代碼 – Nisar

+0

那麼這個錯誤說的不同,你可以重新鍵入你的查詢的那一部分,也許一個隱藏的特殊字符在 –

+2

這個空間很可能來自錯誤信息的逐字拷貝和粘貼,所以它不應該是真正的錯誤來源 – MicSim

0

在您的要求使用相同的名稱表,請使用

tbl_Product

tbl_product

更改爲向

select ifnull(count(tbl_product.manufactureId),0) 
    from tbl_product where manufactureId = p_manufactureId 
+0

顯示相同的錯誤 – Nisar