在使用mysql时候,某些字段会存储中文字符,或是包含中文字符的串,查询出来的方法是:
SELECT col FROM table WHERE length(col)!=char_length(col)
网上搜索有很多种查询方法,但是试了很多都不行,这个是找到的可以使用的查询方法,原理其实很简单,当字符集为UTF-8,并且字符为中文时,length()
和 char_length()
两个方法返回的结果是不相同的。
# 以下这两个方法查询字段中是否包含中文
SELECT country FROM kaggle_main_info WHERE length(country)!=char_length(country);
select country from kaggle_main_info where not(country regexp "[\u0391-\uFFE5]") ORDER BY country DESC ;