MYSQL 存储过程类似于 SQL SERvER with IF ELSE CONDITION

MYSQL Store Procedure like SQL SERvER with IF ELSE CONDITION

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中我不知道该怎么做我google但没有得到任何答案请帮助我......

我想要这样,如果我传递客户名称,那么我会根据客户名称数据获取如果我传递 null,那么我会获取所有客户数据

在 sql 服务器上它对我有用,但是在 mysql 中如何操作不知道,因为我正在使用 jsp 并且后端是 mysql.

您的代码有误,必须是 FROM 而不是 form。

在 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 ;

nbk 先生完美地回答了我的问题谢谢你