我如何在 MariaDB 中使用 LIKE 运算符来获取最大和最小 4 个字符的 PostalCode 列表?
How do i use LIKE operator in MariaDB for a list of PostalCode with s max and min of 4 characters?
我有这个包含一些随机信息的数据库。在数据库中,我需要使用 LIKE 运算符来查找最少 4 个字符和最多 4 个字符的所有邮政编码。
假设 PostalCode
列是 VARCHAR 数据类型,有几种可能的模式。使用 LIKE
比较运算符,我们可以使用四个下划线通配符
PostalCode LIKE '____'
每个下划线匹配一个任意字符,包括space和特殊字符。 PostalCode
的任何值,如果此表达式的值为 1 (TRUE),我们可以说它满足 "max and min of 4 characters".
另一种选择是计算字符数,使用 MySQL CHAR_LENGTH
函数
CHAR_LENGTH(PostalCode) = 4
为了满足使用 LIKE
运算符的要求,我们可以使用 LIKE 代替 equals 并允许隐式类型转换,例如
CHAR_LENGTH(PostalCode) LIKE '4'
另一种选择是使用 REGEXP 比较,例如
PostalCode REGEXP '^....$'
同样,根据包含 LIKE 比较的要求,我们可以比较该表达式中的 return,这是不必要的混淆
( PostalCode REGEXP '^....$' ) LIKE '1'
我有这个包含一些随机信息的数据库。在数据库中,我需要使用 LIKE 运算符来查找最少 4 个字符和最多 4 个字符的所有邮政编码。
假设 PostalCode
列是 VARCHAR 数据类型,有几种可能的模式。使用 LIKE
比较运算符,我们可以使用四个下划线通配符
PostalCode LIKE '____'
每个下划线匹配一个任意字符,包括space和特殊字符。 PostalCode
的任何值,如果此表达式的值为 1 (TRUE),我们可以说它满足 "max and min of 4 characters".
另一种选择是计算字符数,使用 MySQL CHAR_LENGTH
函数
CHAR_LENGTH(PostalCode) = 4
为了满足使用 LIKE
运算符的要求,我们可以使用 LIKE 代替 equals 并允许隐式类型转换,例如
CHAR_LENGTH(PostalCode) LIKE '4'
另一种选择是使用 REGEXP 比较,例如
PostalCode REGEXP '^....$'
同样,根据包含 LIKE 比较的要求,我们可以比较该表达式中的 return,这是不必要的混淆
( PostalCode REGEXP '^....$' ) LIKE '1'