创建新表时通过SELECT把其他表数据引入,id排序有问题

创建新表时通过SELECT把其他表数据引入,id排序有问题

http://img1.sycdn.imooc.com//climg/5d4928680001ed5b06300602.jpg

请看id部分,顺序是乱的。

而老师的是从1-7排列的。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕柯南 2019-08-06 17:02:57

同学你好!

SELECT 只能保证显示的顺序是,而插入的顺序是不能保证和显示出来的一致,是不可控制。这与它内部的机制有关,不一致并不会应影响实际的使用。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 曼曼喜欢你 #1
    所以说我以后遇到此类问题,还是建议加上排序条件进行查询,对吗?
    2019-08-06 17:04:04
提问者 曼曼喜欢你 2019-08-06 15:28:35

神奇,创建了一个user2 LIKE user1 

没想到排序又正常了

http://img1.sycdn.imooc.com//climg/5d492c1f00018ec308360818.jpg

  • 提问者 曼曼喜欢你 #1
    这条评论是错误的,仔细看还是可以发现,仍然是按照username 的升序进行排列的。
    2019-08-06 15:33:05
提问者 曼曼喜欢你 2019-08-06 15:23:49

问题确实出在,默认情况下,排序是按username进行升序排列的。

例如我添加了更多的记录进来后:http://img1.sycdn.imooc.com//climg/5d492ab90001cb7808260720.jpg


目前只能想到先用ORDER BY id ASC 来查询了。

http://img1.sycdn.imooc.com//climg/5d492b0000017cd305940594.jpg

提问者 曼曼喜欢你 2019-08-06 15:17:30

我重新尝试将sql语句做调整:

CREATE TABLE user1(

id INT UNSIGNED AUTO_INCREMENT KEY,

username VARCHAR(20) UNIQUE NOT NULL

)SELECT username FROM emp;

select时,去掉了id,发现顺序是正常的。但是和原emp表的顺序不一样了。发现无论是select id,或者不select id,username字段都是按首字母进行升序排列的。

http://img1.sycdn.imooc.com//climg/5d4929170001df6507920996.jpg

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师