程序中的错误1064

时间:2013-12-12 08:02:32

标签: mysql sql

  

错误1064(42000):您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便在'附近使用正确的语法'(sele   ct ifnull(count(tbl_Product.manufactureId),0)                   来自tbl_product,其中manu'在第5行

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

3 个答案:

答案 0 :(得分:2)

您的错误表明您在select

中有空格
  

...在'附近使用的语法(sele ct ifnull ...

您在选择之前错过了=

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

答案 1 :(得分: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 
    ) ;

答案 2 :(得分:0)

在请求中对表使用相同的名称,使用

  

tbl_Product

  

tbl_product

将您的请求更改为

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