You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询筛选字符长度在5-10之间的name字段?

如何查询字符长度在特定范围的数据库记录

嘿,你完全不用纠结正则表达式,SQL本身就提供了专门的字符长度函数,直接用这些函数来筛选比正则高效多了!不同数据库的函数名略有差异,我给你整理了几种常见数据库的实现方式:

MySQL/MariaDB

用CHAR_LENGTH()函数来获取字符数(注意和LENGTH()区分:LENGTH()返回的是字节数,比如中文在UTF-8下占3字节,CHAR_LENGTH()会算1个字符,这应该是你要的):

SELECT * FROM members 
WHERE CHAR_LENGTH(name) > 5 AND CHAR_LENGTH(name) < 10;

如果需要包含5和10个字符的情况,把>和<改成>=和<=就行。

PostgreSQL

PostgreSQL里LENGTH()直接返回字符数,也可以用CHAR_LENGTH(),两者效果一样:

SELECT * FROM members 
WHERE LENGTH(name) > 5 AND LENGTH(name) < 10;

如果要查字节长度,用OCTET_LENGTH()函数。

SQL Server

用LEN()函数获取字符数(注意:LEN()会忽略字段末尾的空格,如果需要包含空格的长度,得用DATALENGTH(),但它返回的是字节数,Unicode字符要除以2):

SELECT * FROM members 
WHERE LEN(name) > 5 AND LEN(name) < 10;

Oracle

Oracle用LENGTH()返回字符数,LENGTHB()返回字节数:

SELECT * FROM members 
WHERE LENGTH(name) > 5 AND LENGTH(name) < 10;

简单来说,就是用对应数据库的字符长度函数替代你写的names characters,直接放在WHERE条件里做数值比较就好,比正则简洁多啦!

内容的提问来源于stack exchange,提问作者Source

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:12:59