2014-06-05 88 views
0

我在MySQL中有一個名爲'luhn_'的過程。返回true/false的MySQL程序

我想用我的其他程序中的函數 - 在中頻條件。所以它應該返回給我一些輸出參數(也許真/假?)

實現類似的東西最簡單的方法是什麼?

DELIMITER $$ 
DROP procedure if exists `luhn_`$$ 

CREATE procedure `luhn_` (IN input_string VARCHAR(256), IN input_lenght INTEGER) 
BEGIN 

SET @luhn_string = LEFT(TRIM(input_string), input_lenght); 

IF(LENGTH(@luhn_string)=input_lenght) 
    THEN SELECT count(*) from courrier_envoye; -- true 
ELSE 
    SELECT * from courrier_envoye; -- false 
END IF; 


END$$ 


-- call luhn_('123456789',10); 

如果條件

... 
if(luhn_('123456789',10) = true) THEN ... 
ELSE ... 
... 
+0

返回'0'假,什麼除了'0'是真的。 – Barmar

+0

爲此使用'CREATE function'。 –

回答

1

創建功能會爲你做

DELIMITER $$ 

CREATE FUNCTION `luhn_`(input_string VARCHAR(256), input_lenght INTEGER) RETURNS tinyint(1) 
BEGIN 
SET @luhn_string = LEFT(TRIM(input_string), input_lenght); 

IF(LENGTH(@luhn_string)=input_lenght) THEN 
    return true; 
ELSE 
    return false; 
END IF; 


END 

使用存儲過程

if(select luhn_(input_string,input_lenght)) then 
    select 'a'; 
else 
    select 'b'; 
end if;