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

--只含有数字和字母的
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())。

你可能感兴趣的:(数据库sql如何查询某个字段只含有数字和字母或者是汉字)