MySQL:剥离非数字字符进行比较
在 MySQL 中,您可以根据用户输入的特定数字来过滤记录,即使数据库中存储的数值由于不需要的非数字字符而不同。要实现此目的,请考虑使用以下方法:
下面提供的 STRIP_NON_DIGIT 函数从输入字符串中删除非数字字符,从而可以直接比较数值:
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 $$
使用此函数,您可以按如下方式过滤记录:
SELECT * FROM foo WHERE STRIP_NON_DIGIT(bar) = '12345'
此查询将检索“bar”列中的数值的记录匹配“12345”,即使数据库中存储的值包含非数字字符,例如“123zz4-5”。
以上是尽管非数字字符,如何比较 MySQL 中的数值?的详细内容。更多信息请关注PHP中文网其他相关文章!