sql判断字段是否含有中文,orcale,mysql判断字段是否含有中文

orcale中判断字段是否含有中文

现有表 cs_name 如下
sql判断字段是否含有中文,orcale,mysql判断字段是否含有中文_第1张图片
方法一:
判断 length() 是否等于lengthb(),中文占两个字节

length表示的是字符串的字符长度
lengthb表示的是字符串的字节长度

--查询不包含中文
select name from cs_name where length(name) = lengthb(name);

--查询包含中文的
select name from cs_name where length(name) <> lengthb(name);

方法二:
使用 asciistr()函数
ASCIISTR函数,参数是一个字符串,如果这个字符在ASCII码表中有,则转成ASCII表中的字符。
如果没有,则转成\xxxx格式,xxxx是UTF-16的编码。
如果表中只有中文和英文、数字等字符,则可以用\来判断是否带有中文。

--- 查询包含中文的
select name from cs_name where asciistr(name) like '%\%';
--  查询不包含中文
select name from cs_name where asciistr(name) not like '%\%';

方法三:
使用 convert() 函数
CONVERT( string1, char_set_to [, char_set_from] )
string1:要转换的字符串。
char_set_to:要转换为的字符集。
char_set_from:可选的,要从中转换的字符集。

--- 查询包含中文的
select name from cs_name where name <> convert(name, 'ZHS16GBK', 'UTF8');

mysql中判断字段中是否含有中文

判断 length()char_length() 是否相等

  SELECT name FROM user WHERE length(name) != char_length(name)

你可能感兴趣的:(数据库,数据库)