Mysql使用order by排序,顺序错乱,按照id排序也是乱序。

博客内容讲述了在使用MySQL进行数据排序时遇到的问题,即不论升序还是降序,排序结果都出现错乱。问题根源在于数据类型的错误,原本应该是int类型的数据在导入时变成了varchar类型,导致排序异常。解决方案是将数据类型修正为int,确保正确排序。在导入txt文件后,作者建议检查并调整表属性以避免类似问题。
摘要由CSDN通过智能技术生成

错误描述:在使用mysql的order by排序时,无论正序还是倒序都出现了排序错乱问题。我当时用的docker里面的mysql8,本以为是docker里面的和本地下载的mysql8不一样,因为docker的原因,比本地的mysql占用内存小了近2/3,但是,后续发现,原因不在docker!

查询语句:

select id from table order by id desc

可以看到排序很魔性。

sql语句绝对没问题,相信大家的也没问题,接下来说一下原因:

解决方法:排序的数据类型不是int等数值类型,而是varchar类型。设置为数值类型即可。

错误原因:我的原因是用本地的Navicat导入txt数据文件时,导入的int类型全变为了varchar,并且varchar类型都为默认值255,主键也没有了,更别说主键的int自增。

txt文件导入后的表:

 原表文件:

 由此可见,每次导入txt文件后,都应该根据原表重新修改表属性,好在数据都直接导入,不需要再次添加。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风亦思雨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值