if _Email <> '' 
then
update member set email = _Email where username=uname;
update account set email = _Email where username=uname;
end if; update account set password=_pwd, stly=_stly where username=uname;
参数
IN ‘uname‘ varchar(15),IN ‘_Email‘ varchar(32),IN ‘_pwd‘ varchar(32),IN ‘_stly‘ varchar(6)报错
1054-Unknown column '_Email' in 'field list'

解决方案 »

  1.   

    我用的是Navicat 8 for mysql,这个存储过程操作的就是先判断是否要修改邮箱,如果邮箱为空,就修改密码和其中一个参数
      

  2.   


    BEGIN 
        if _Email <> '' 
        then
            update member set email = _Email where username=uname;
            update account set email = _Email where username=uname;
        end if;    update account set password=_pwd, stly=_stly where username=uname;
    END
      

  3.   

    SHOW CREATE PROCEDURE procname
      

  4.   

    或者这样……
    BEGIN 
        if _Email <> '' 
        then
            update member set email = _Email where username=uname;
            update account set email = _Email,password=_pwd, stly=_stly where username=uname;
        else
            update account set password=_pwd, stly=_stly where username=uname;
        end if;END
      

  5.   

    是这样吗?
    CREATE PROCEDURE test1
    (IN ‘uname‘ varchar(15),
    IN ‘_Email‘ varchar(32),
    IN ‘_pwd‘ varchar(32),
    IN ‘_stly‘ varchar(6)
    )
    BEGIN 
        if _Email <> '' 
        then
            update member set email = _Email where username=uname;
            update account set email = _Email,password=_pwd, stly=_stly where username=uname;
        else
            update account set password=_pwd, stly=_stly where username=uname;
        end if;END
      

  6.   

    IN ‘uname‘->IN `uname`
    ‘->`
      

  7.   

    报错
    1054-Unknown column '_Email' in 'field list'
      

  8.   

    用你的代码测试没有问题,楼主碰到的问题是什么? 如果有问题请把错误代码一并贴出。mysql> delimiter $$
    mysql>
    mysql> CREATE PROCEDURE test1
        -> (IN ‘uname‘ varchar(15),
        -> IN ‘_Email‘ varchar(32),
        -> IN ‘_pwd‘ varchar(32),
        -> IN ‘_stly‘ varchar(6)
        -> )
        -> BEGIN
        ->     if _Email <> ''
        ->     then
        ->         update member set email = _Email where username=uname;
        ->         update account set email = _Email,password=_pwd, stly=_stly where
     username=uname;
        ->     else
        ->         update account set password=_pwd, stly=_stly where username=uname
    ;
        ->     end if;
        ->
        -> END
        -> $$
    Query OK, 0 rows affected (0.80 sec)mysql>问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧