我使用以下示例:
select '10+20+30'
并生成价值:
'++'
换句话说,剥去任何数字并只留下符号。
答案 0 :(得分: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
子句以满足您的口味。我相信有更好的方法。