MySQL剥离非数字字符进行比较-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

MySQL剥离非数字字符进行比较

保持可爱mmm 2020-05-11 16:50:58 57

我正在寻找在表中查找与用户输入的特定数字匹配的记录。因此,用户可以输入12345,但是在数据库中可以是123zz4-5。

我想如果PHP函数可以在MySQL中工作,那么类似的事情就可以工作。

SELECT * FROM foo WHERE preg_replace("/[^0-9]/","",bar) = '12345' 仅MySQL的等效功能或方法是什么?

关系型数据库 MySQL PHP 数据库
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-11 16:51:33

    我意识到这是一个古老的话题,但是在搜索了这个问题后,我找不到一个简单的解决方案(我看到了古老的代理,但认为这是一个更简单的解决方案),所以这是我编写的一个函数,似乎工作得很好。

    DROP FUNCTION IF EXISTS STRIP_NON_DIGIT; DELIMITER $$ CREATE FUNCTION STRIP_NON_DIGIT(input VARCHAR(255)) RETURNS VARCHAR(255) BEGIN DECLARE output VARCHAR(255) DEFAULT ''; DECLARE iterator INT DEFAULT 1; WHILE iterator < (LENGTH(input) + 1) DO IF SUBSTRING(input, iterator, 1) IN ( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' ) THEN SET output = CONCAT(output, SUBSTRING(input, iterator, 1)); END IF; SET iterator = iterator + 1; END WHILE; RETURN output; END $$ 来源:stack overflow

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程