数据库sql如何查询某个字段只含有数字和字母或者是汉字

本文介绍如何使用SQL查询仅包含汉字或仅包含数字和字母的数据行。通过`REGEXP_LIKE`函数及`length()`函数配合`ASCIISTR()`进行判断,实现了对特定格式数据的有效筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--只含有数字和字母的
select 列名 from 表名 where REGEXP_LIKE(列名,'^([\u4e00-\u9fa5]+)$')
--只含有汉字

select 列名 from 表名 where length(列名)=length(ASCIISTR(列名))-length(replace(ASCIISTR(列名),'\',''))


说明:asciistr()函数会将字符串转换成ASCII值,如果这个字符在ASCII码表中,则转化成ASCII对应的字符;如果没有(如中文和全角字符),则转成\xxxx格式


length()函数统计中文长度为1,lengthb()对应的一个汉字为2字节。上边的语句是在比较汉字的个数和转成ASCII值后\的个数,如若相等,则说明全是汉字。(如果想要排除全角符号的影响,则需先把字段半角,函数为 to_single_byte())。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值