比如一个学生表,里面有名称name字段和分数point字段,如果sql语句如下:
select * from t_student order by point desc
比如有下面样本数据 :id name point
1 name1 99
2 name2 99
3 name3 90 如果分数相同,返回的结果是name1在前面还是name2在前面?数据库查询时根据什么逻辑返回的?是不是无论数据怎么变,查询第一遍和查询第二遍,返回的顺序都是一样的?还是说我加了数据,改变了索引什么的,然后重复查询返回数据可能不一样?
select * from t_student order by point desc
比如有下面样本数据 :id name point
1 name1 99
2 name2 99
3 name3 90 如果分数相同,返回的结果是name1在前面还是name2在前面?数据库查询时根据什么逻辑返回的?是不是无论数据怎么变,查询第一遍和查询第二遍,返回的顺序都是一样的?还是说我加了数据,改变了索引什么的,然后重复查询返回数据可能不一样?
但从数据理论上来说,没有ORDER BY的情况下数据库系统不保证顺序。
影响的因素多,不过通常对单表而言,除非是热点表,否则受到影响的机率比较低,查询时间间隔越短,结果相同的概率越大