在 MySQL 中剥离非数字字符以方便比较
要根据用户输入的数字查找匹配记录,有必要考虑数据库值中的非数字字符。本文探讨了一个 MySQL 函数来剥离这些非数字字符并促进准确比较。
问题陈述
给定一个表,其中包含可能散布有非数字的字段-数字字符,任务是查找与输入的特定数字匹配的记录
MySQL 函数:STRIP_NON_DIGIT
为了解决这个问题,可以创建一个名为 STRIP_NON_DIGIT 的 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 $$
在职的示例
要使用 STRIP_NON_DIGIT 函数,请执行如下 SQL 查询:
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345';
此查询将从“foo”表返回记录,其中“bar”中的值' 去除非数字字符的字段与输入的 '12345' 相匹配user.
好处
此函数为 MySQL 数据库中比较数值与非数字字符的问题提供了一种简单有效的解决方案。它不需要复杂的正则表达式或 PHP 函数,并且易于实现。
以上是如何在MySQL中高效比较数字数据与非数字字符?的详细内容。更多信息请关注PHP中文网其他相关文章!