Mysql的排序问题 --对汉字、ip进行排序

本文探讨了如何对IP地址进行排序,利用MySQL的CONVERT和SUBSTRING_INDEX函数逐段转换并比较IP的各个部分。同时,文章提及了对汉字排序时遇到的问题,虽然示例未给出正确解决方案,但强调了字符编码转换在排序中的重要性。
摘要由CSDN通过智能技术生成

对IP进行排序

select ip from t_ip  
ORDER BY 
CONVERT(SUBSTRING_INDEX(ip, '.', 1), SIGNED),
CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', 2), '.', -1), SIGNED), 
CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(ip, '.', 3), '.', -1), SIGNED), 
CONVERT(SUBSTRING_INDEX(ip, '.', -1), SIGNED);

对汉字进行排序 ----不知为何有中英文的 两种都不对·· ps mysql的sub起始位置为0
CONVERT(列名 USING gbk)
CONVERT(SUBSTR(列名,1,1) USING gbk)

函数介绍

1) CONVERT(expr,type): 此函数的作用是将表达式转换为特定类型

如:上面用到的 CONVERT(SUBSTRING_INDEX(ip, ‘.’, 1), SIGNED) 是将ip字段中获取的第一位,转换为整数。

2)SUBSTRING_INDEX(str,delim,count):此函数的作用是将一个字段串,按照某个标识字符串截取,并获取第几个之前

如:SUBSTRING_INDEX(ip, ‘.’, 1) 是将IP按照 ‘.’ 分隔,获取第一位。如果是ip是 192.168.10.8,获取的就是 192

   SUBSTRING_INDEX(ip, '.', -1) 是将IP按照 '.' 分隔,获取最后一位。如果是ip是 192.168.10.8,获取的就是 8
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值