2016-08-10 58 views
0

我用下面的例子:如何從Mysql中分配字符?

select '10+20+30' 

和生成值:

'++' 

換言之,條帶任何數字,並只留下痕跡。

+0

這是什麼意思?請描述你的問題清楚 –

+0

黨這似乎產生'10 + 20 + 30' – Drew

+0

我想分開像選擇'10 + 20 + 30',併成爲'++', –

回答

0

功能:

DROP FUNCTION IF EXISTS getMOps; 
DELIMITER $$ 
CREATE FUNCTION getMOps 
( s varchar(100) 
) 
RETURNS VARCHAR(100) DETERMINISTIC 
BEGIN 
    DECLARE sOut VARCHAR(100); 
    DECLARE theLen,iLooper INT; 
    SET iLooper=1; 
    SET theLen=LENGTH(s); 
    SET sOut=''; 
    WHILE iLooper<theLen DO 
     IF SUBSTR(s,iLooper,1) IN ('+','-','*','/','^') THEN 
      SET sOut=CONCAT(sOut,SUBSTR(s,iLooper,1)); 
     END IF; 
     SET iLooper=iLooper+1; 
    END WHILE; 
    return (sOut); 
END$$ 
DELIMITER ; 

測試:

select getMOps('fish'); -- blank string 
select getMOps('1+2+7-1'); -- '++-' 

修改IN條款,以滿足您的口味。我相信有更好的方法。

+0

如果使用select,是否可以不使用函數? –

+0

是的,我剛剛表明,在測試 – Drew

+0

你可以在任何地方使用它,比如在更新版本號 – Drew