mysql - 如何在 MariaDB 中使用 LIKE 运算符获取最大和最小 4 个字符的 PostalCode 列表?
问题描述
我有这个包含一些随机信息的数据库。在数据库中,我需要使用 LIKE 运算符查找最少 4 个字符和最多 4 个字符的所有 PostalCodes。
解决方案
假设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'
推荐阅读
- azure - 从 txt 文件读取并转换为托管磁盘
- facebook - 使用 CocoaPods 或 FacebookSDK 在 Flutter 中为 iOS 设置 Facebook 应用程序?
- javascript - 如何从 dijit/Editor 捕获事件?
- excel - Excel Javascript API - 连接范围或复杂范围选择
- nginx - NGINX 解析一个未配置的域,为什么?
- fortran - 什么时候需要解除数组分配?
- r - 这可以在没有循环的情况下完成吗?
- laravel - Laravel eloquent 自定义字段查询顺序
- javascript - Javascript递归嵌套比较循环
- f# - 无法连接函数的结果