我使用下面的例子:
select '10+20+30'
并产生值(value):
'++'
In other words, strip any digit and leave only signs.
最佳答案
功能:
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
子句以满足您的喜好。我确信有更好的方法。
关于mysql - 如何从Mysql中分离字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38865293/