首页 > 解决方案 > 如何在 MariaDB 中使用 LIKE 运算符获取最大和最小 4 个字符的 PostalCode 列表?

问题描述

我有这个包含一些随机信息的数据库。在数据库中,我需要使用 LIKE 运算符查找最少 4 个字符和最多 4 个字符的所有 PostalCodes。

标签: mysqldatabasemaxsql-likemin

解决方案


假设PostalCode列是 VARCHAR 数据类型,则有几种可能的模式。使用LIKE比较运算符,我们可以使用四个下划线通配符

 PostalCode LIKE '____' 

每个下划线都匹配一个任意字符,包括空格和特殊字符。任何PostalCode具有此表达式的值都为 1 (TRUE),我们可以说它满足“最大和最小 4 个字符”。

另一种选择是使用 MySQLCHAR_LENGTH函数计算字符数

CHAR_LENGTH(PostalCode) = 4 

为了满足使用LIKE运算符的要求,我们可以使用 LIKE 代替等号并允许隐式类型转换,例如

CHAR_LENGTH(PostalCode) LIKE '4'

另一种选择是使用 REGEXP 比较,例如

PostalCode REGEXP '^....$'

同样,根据合并 LIKE 比较的要求,我们可以比较该表达式的返回值,这是不必要的混淆

 ( PostalCode REGEXP '^....$' ) LIKE '1'

推荐阅读