SQL判断某列中是否包含中文字符、英文字符、纯数字

2019-09-18 11:00:39 浏览数 (1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/xc_zhou/article/details/100669914

一、包含中文字符

代码语言:javascript复制
select * from 表名 where 列名 like '%[吖-座]%'

[吖-座]是中文字符集第一个到最后一个的范围,虽然匹配准确,但是用Like的效率很低

在使用mysql时候,某些字段会存储中文字符,或是包含中文字符的串,查询出来的方法是:

代码语言:javascript复制
SELECT column FROM table WHERE length(column)!=char_length(column)

原理其实很简单,当字符集为UTF-8,并且字符为中文时,length() 和 char_length() 两个方法返回的结果是不相同的。

二、包含英文字符

代码语言:javascript复制
select * from 表名 where 列名 like '%[a-z]%' or like '%[A-Z]%'

三、包含纯数字

代码语言:javascript复制
select * from 表名 where 列名 like '%[0-9]%'

0 人点赞