2017-01-10 91 views
0
BEGIN 
DECLARE cnt1 int(11); 
DECLARE cnt2 int(11); 
DECLARE demandid varchar(255); 
set demandid = replace(pintypeid,';',','); 

SELECT 
    COUNT(*) into cnt1 
FROM 
    UK_Generic_Demand_Details 
where status =300 and 
policyNumber =pinpno and 
demandTypeId in(Select @demandid) ; 

    SELECT 
    COUNT(*) into cnt2 
FROM 
    UK_Generic_Completed_Demand_Details 
    where 
     status =300 and 
policyNo =pinpno and 
demandTypeId in(select @demandid); 
     select cnt1+cnt2 into poutcount; 

END 

可以请一些建议我解决这个问题。 存储过程将从应用程序调用pintypeid和policynumber作为输入。 policynumber将单个,但pintypeid将像一个字符串。mysql select不工作IN IN

回答

1

您可能正在寻找find_in_set

BEGIN 
DECLARE cnt1 int(11); 
DECLARE cnt2 int(11); 
DECLARE demandid varchar(255); 
set demandid = replace(pintypeid,';',','); 

SELECT 
    COUNT(*) into cnt1 
FROM 
    UK_Generic_Demand_Details 
where status =300 and 
policyNumber =pinpno and 
find_in_set(demandTypeId, @demandid) > 0; 

    SELECT 
    COUNT(*) into cnt2 
FROM 
    UK_Generic_Completed_Demand_Details 
    where 
     status =300 and 
policyNo =pinpno and 
find_in_set(demandTypeId, @demandid) > 0; 
     select cnt1+cnt2 into poutcount; 

END 
+0

我已经试过了太.. – Chowdary

+0

@sravan话,请添加更多详细的问题 - 像什么都会变有它。该专栏有什么。 – GurV