gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:53:36 25 4
gpt4 key购买 nike

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

我想如果 PHP 函数在 MySQL 中工作的话,这样的事情就会工作。

SELECT * FROM foo WHERE preg_replace("/[^0-9]/","",bar) = '12345'

仅使用 MySQL 执行此操作的等效函数或方法是什么?

速度并不重要。

最佳答案

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

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
$$

关于MySQL 剥离非数字字符进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com