首页 >数据库 >mysql教程 >如何在MySQL中高效比较数字数据与非数字字符?

如何在MySQL中高效比较数字数据与非数字字符?

DDD
DDD原创
2024-12-09 15:03:14771浏览

How to Efficiently Compare Numeric Data with Non-Numeric Characters in MySQL?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn