当前位置: 首页 > news >正文

限制数据库字段长度的公用写法:length和like和rlike对于限制字段长度的原理与区别

关于数据库字段长度的探索:

  • length和like和rlike对于限制字段长度的原理与区别
    • length
    • like、rlike
      • ==like的_下划线通配符==
      • ==rlike的正则表达式==
      • ==regexp、regexp_like的正则表达式==


length和like和rlike对于限制字段长度的原理与区别

探索之前先简单介绍下:
length函数可以返回每条数据的字段的长度,like和rlike一般用作模糊匹配关键字查询


length

length返回字段长度的原理是与每个数据库对于字符编码方式的设计挂钩的,计算的是字节,一般都是utf8,这样数据库里一个中文或者一个中文符号就占用3个字节,其他的英文、数字、英文符号、空格就只占用1个字节。
在这里插入图片描述
在这里插入图片描述
这样的话和我们想的就不一样,我们想的就是不管是中文英文数字还是符合就是长度为1个。在mysql里就有char_length这个函数实现这个功能。
在这里插入图片描述
但在oracle里length一个中文就是返回1。对于这种length函数不通用与大部分数据库的标准写法时,我们就可以间接使用模糊查询来避免换数据库后带来的长度不一致的困扰。


like、rlike

在这里我就不介绍常用的功能了,就只针对限制字段长度,不管是中文、英文、数字、还是符号,来介绍一个公用的写法:

like的_下划线通配符

我们知道like有下划线的通配符,一个下划线表示任意一个字符。
如下表里,姓名字段里一个两个三个四个五个字符的都有。
在这里插入图片描述


/**这里like了两个下划线就表示姓名只有两个任意的字符**/

SELECT * FROM 学生基本信息
WHERE STUNAME LIKE '__'

在这里插入图片描述


rlike的正则表达式

据我了解like下划线的方式只能限定固定长度,比如我们想要2到4个长度的姓名时,我们就可以使用rlike:
RLIKE ‘^.{n,m}$’

RLIKE '^.{n,m}$'

^表示开头    
.在rlike的正则表达里表示匹配任意字符
{n,m}的规则就是n<=m 
最后$表示结尾

^.就是以任意字符开头
^.{2,4}表示以任意2到4个字符开头
不写这个$的话这个{2,4}里的4就没有意义了   就只有里面的2有意义

RLIKE '^.{2,4}$' 表示字段里最少有2个最多有4个字符

在这里插入图片描述


regexp、regexp_like的正则表达式

如果数据库不支持rlike,例如oracle就不支持,就可以用regexp或者regexp_like来代替rlike

REGEXP_LIKE(字段名,'^.{n,m}$')
字段名 REGEXP '^.{n,m}$' 

这两个的意思和功能和 RLIKE '^.{n,m}$' 一样

查询姓名只有一个字和两个字的数据:
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 【技海登峰】Kafka漫谈系列(九)SpringBoot整合Kafka多数据源配置
  • BFS最短路径(十六)127. 单词接龙 困难
  • 爬虫案例十四js逆向中国五矿
  • 2.库函数的模拟实现
  • ES怎么通过客户端操作和查询/curl操作指令
  • DeepBI驱动的动态预算与库存联动调整策略
  • 当AI回答问题时,它的“大脑”里在炒什么菜?
  • LoRa无线通讯边缘网关-EG2000-数据上云和远程组网
  • Android电量与流量优化
  • npm、pnpm、cnpm、yarn、npx之间的区别
  • 我的创作纪念日:730天的技术写作之旅
  • 11 | 给 Gin 服务器添加中间件
  • 晨控CK-FR08与汇川H5U系列PLC配置EtherNet/IP通讯连接手册
  • 六、OpenGL中EBO的使用及本质
  • 【Godot4.3】斜抛运动轨迹曲线点求取函数
  • 时间序列模型(1):LSTNet
  • 解决ubuntu(jetpack)系统下系统盘存储不够的
  • MongoDB备份与还原
  • 2025年第十届数维杯大学生数学建模挑战赛参赛规则
  • Windows根据文件名批量在文件夹里查找文件并复制出来,用WPF实现的详细步骤
  • “远践”项目启动公益生态圈,上海青少年公益力量蓬勃生长
  • 中拉论坛部长级会议为何悬挂海地和圣卢西亚的国旗?外交部回应
  • 生态环境保护督察工作条例对督察对象和内容作了哪些规定?有关负责人答问
  • 澎湃思想周报|欧洲胜利日之思;教育监控与学生隐私权争议
  • 打击网络谣言、共建清朗家园,中国互联网联合辟谣平台2025年4月辟谣榜
  • 国家统计局今年将在全国开展两次人口固定样本跟访调查