MYSQL存储过程,如带有IF ELSE CONDITION的SQL SERvER

Haresh Prajapati:
Create Procedure spText(IN Cust_Name longtext)

begin

   Declare

     @varWhere varchar(max)= '  WHERE Cust_No is not null ' + Char(13),
     @varSQL varchar(Max)

        SET @varSQL='select * form Customer_Dtls'


        if Cust_Name  is not null
            BEGIN

                 set @varWhere=@varWhere + ' and Custer_Nm like %Cust_Name%' + Char(13)
        end 

   EXEC (@varSQL + @varWhere)

end

在MySQL中不知道如何做到这一点我谷歌,但没有得到任何答案,请帮助我......

我想通过这种方式,如果我通过客户名称,那么我将按照客户名称数据获取,如果我通过null,那么我将获取所有客户数据

在SQL Server中它为我工作,但如何在MySQL中做不知道,因为我使用的是JSP,后端是MySQL。

nbk:

您的代码中有错误,它必须是FROM而不是表格。

在MySQL中,此过程按预期工作

DROP procedure IF EXISTS `spText`;

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `spText`(IN Cust_Name longtext)
BEGIN


    SET  @varWhere = '  WHERE Cust_No is not null ' ;
    SET @varSQL='select * FORM Customer_Dtls ';


        IF Cust_Name  is not null THEN
            set @varWhere= CONCAT(@varWhere, " and Custer_Nm like '%Cust_Name%'");
            END IF;
        SET @SQL= CONCAT(@varSQL , @varWhere);
    PREPARE stmt FROM @SQL;
    EXECute stmt;
end$$

DELIMITER ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章