mysql 按照汉字字母排序,查询列为纯数字,查询列为纯英文,查询列包含汉字,查询列为纯汉字 sql记录

 

 

-- 按照汉字的字母排序
SELECT * from  key_word  s ORDER BY CONVERT(s.kywds_nm using gbk) asc;
-- 判断为纯数字
SELECT  * from key_word  s where LENGTH(s.KYWDS_NM +0) = LENGTH(s.KYWDS_NM) and s.KYWDS_NM regexp '^[0-9]';
-- 判断为全英文
SELECT * from key_word  s where LENGTH(s.KYWDS_NM) = CHAR_LENGTH(s.KYWDS_NM) and not s.KYWDS_NM regexp '[0-9]';
-- 判断为全汉字
SELECT * from key_word  s where  LENGTH(s.KYWDS_NM) != CHAR_LENGTH(s.KYWDS_NM) and not s.KYWDS_NM regexp '[0-9]' and not s.KYWDS_NM REGEXP '[a-z]';
-- 判断包含汉字的
SELECT * from key_word  s where  LENGTH(s.KYWDS_NM) != CHAR_LENGTH(s.KYWDS_NM);

 

注意: 使用char_length  和length  进行长度对比的需要是utf8 , gbk 是对比不出来的。

Mysql支持 几十种字符集;应该如何选择呐,有以下可以参考:

  1. 如果需要支持各种语言,文字,或作发布使用不同语言或国家,mysql目前使用UTF-8;
  2. 需要考虑已有数据,如果已有数据,需要考虑字符集的兼容性,就是后来设置的字集要比之前使用的字集范围大;
  3. 如果只需要支持一般中文,并且数据量很大,性能要求很高,用gbk比较合适,因为gbk一个汉字占2个字符,utf8 占3个字符;满足需求的情况下gbk可以减少存储占用,提供检索效率;
  4. 如果只有少量汉字,主要处理英文 则建议选择UTF8;因为 utf8 英文只占一个字符;gbk英文占2个字符;所以会大大减少存储的大小;
  5. 如果客户端需要支持相同的字符集,则可以设置服务器级别的字符集:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值