MYSQL为什么一个数组存到数据库里的时候插入的先后顺序变了

我通过腾讯接口拿数据比如一个数据我通过接口拿到时候是[7]=>Array([worker]=>1212121@sdfsdfsdf[openid]=>ddfdfdfdfds... 我通过腾讯接口拿数据比如一个数据我通过接口拿到时候是
[7] => Array
(
[worker] => 1212121@sdfsdfsdf
[openid] => ddfdfdfdfdsfsdfds
[opercode] => 1003
[time] => 1417505903
[text] =>
)

[8] => Array
(
[worker] => 50280
[openid] => ddfdfdfdfdsfsdfds
[opercode] => 1006
[time] => 1417505903
[text] =>
)

循环插入数据库,按照道理是1003先进去的,可为什么入库的时候变成1006在前面先入库了,顺序变了是由于时间戳一样吗???顺序变了对我影响很大,我无法判断一些规则了。请问如何解决?以及为什么会这样啊?
展开
 我来答
阳光上的桥
推荐于2016-02-02 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你应该给你的数据库增加一个自增类型的字段,这个字段每次插入数据时值自动增加1,用这个字段可以看出数据插入的先后顺序。

数据库里面的记录在存储时的先后次序是我们无法控制的,系统为了提高效率,可能用各种方法存储,甚至把数据的不同部分分配在不同的磁盘位置上。所以,编程者始终要记住我们无法控制存储的位置和次序,我们只有使用必要的数据记录有关重要信息。

查询数据库数据的时候,可以指定现实的先后次序,在SQL语句中使用ORDER BY。
追问
但是我的数据已经取出来了,只是循环了下,循环总归不会有顺序吧,那么肯定是1003的循环在前,那么执行SQL肯定是先入库的,可是结果是1006先入库的。我已经有自增的ID了,确实是1006先进去的,可循环确实是1003在前的,大神求指教啊。
追答
有了自增的ID过后,在SQL语句末尾写上下面的内容就可以了:
order by id

如果还有问题,请粘贴代码、页面拷屏。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式