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。
您的代码中有错误,它必须是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] 删除。
我来说两句