微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我在 MySQL 中排序的数据是按唯一约束排序而不是主键

如何解决我在 MySQL 中排序的数据是按唯一约束排序而不是主键

我会直截了当,我希望我的问题是可以理解的,因为我的英语不是很好。所以,我使用 MysqL 8.0.23,我有这样的表

字段 类型 额外
id_mhs 内部 没有 PRI NULL 自动增量
varchar(45) NULL
npm 字符(8) UNI NULL
j_kelamin enum('L','P') NULL
t_lahir 日期 NULL
阿拉马特 varchar(50) NULL
哥打 varchar(45) NULL
电话 varchar(12) UNI NULL
电子邮件 varchar(50) UNI NULL

我展示了这样的数据

id_mhs npm
1 AA Aditya A 51411136
2 A Aditya A 51412371
3 迪马斯A 51411111
4 费萨尔迪马斯 51411112
5 法丽达·努尔 51411113

结果是正确的,但是当我尝试这个查询MysqL> select id_mhs,npm from mahasiswa limit 10;

id_mhs npm
28 51411036
47 51411054
83 51411100
84 51411101
85 51411102

结果按 npm 排序,而不是使用 id_mhs,当我使用按 npm 排序时的结果相同,然后我尝试删除列 npm 中的唯一约束,并使用 id_mhs 排序数据。那么,具有唯一约束和字符串数据类型的列将优先排序数据而不是主键?

解决方法

sql 表中没有“默认”顺序,您必须使用 ORDER BY 来订购您想要的东西。

好的方法是像你一样拥有一个唯一的 id 作为唯一索引(主键很好)来检索你的“默认”订单,但你必须通过“ORDER BY id”来区分

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。