mysql - 如何从Mysql中分离字符?

标签 mysql

我使用下面的例子:

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/

相关文章:

php - 统计与论坛相关的帖子总数 - PHP Logic

php - MySQL 查询在 3 列中搜索 MATCH?

mysql - 连接 3 个表,第二个表上有 LIMIT 1

mysql - Oracle MySQL 与 MySQL 相同吗?

php - 向通过 php/html 脚本生成的按钮添加功能

mysql - 如何在没有内部选择的情况下使用 group by 然后 on 子句加入每个外键的最新记录?

mysql - 如何更改查询中 sum 函数的值?

mysql - 用于计算开仓当前余额的 SQL 查询

mysql - 我想在我的 Springboot 项目中实现 session (HTTP 请求)概念,但它给出了这个错误

javascript - 如何在 Node.js 查询中更改 mySQL 数据库中 NOW() 的时区?