从 MySQL 数据中提取数字字符以进行准确比较
与 MySQL 表中的特定数值进行比较,其中数据库条目可能包含非-数字字符,需要一种可靠的方法来剔除那些非数字字符。虽然像 preg_replace 这样的 PHP 函数提供了方便的解决方案,但 MySQL 需要一种本机方法。
用于剥离非数字的 MySQL 函数
要有效地执行此任务,以下 MySQL函数可以是创建:
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
用法
要在查询中使用 STRIP_NON_DIGIT 函数,只需将其应用于目标列,如下所示:
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
此查询将检索 bar 列在删除非数字字符后与用户的匹配的记录输入“12345”。
以上是如何从MySQL数据中提取数字字符进行准确比较?的详细内容。更多信息请关注PHP中文网其他相关文章!