相关疑难解决方法(0)

什么是"SELECT*FROM table_name;"的MySQL行顺序?

假设向MySQL数据库发出以下查询:

SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)

请注意,没有 ORDER BY给出任何条款.

我的问题是:

MySQL是否给出了结果集行的顺序保证?

更具体地说,我可以假设行将按插入顺序返回吗?这与行插入表中的顺序相同.

mysql select sql-order-by

17
推荐指数
3
解决办法
9961
查看次数

ORDER BY是否适用于DISTINCT之前或之后?

在MySQL查询中,使用该DISTINCT选项时,是否ORDER BY在删除重复项后应用?如果没有,有没有办法让它这样做?我认为这会导致我的代码出现问题.

编辑:
这里有一些关于导致我的问题的更多信息.我明白,乍一看,这个顺序并不重要,因为我正在处理重复的行.但是,情况并非完全如此,因为我使用的INNER JOIN是对行进行排序.

假设我有一个论坛帖子表,其中包含以下数据:

+----+--------+-------------+
| id | userid |    title    |
+----+--------+-------------+
|  1 |      1 | Information |
|  2 |      1 | FAQ         |
|  3 |      2 | Support     |
+----+--------+-------------+
Run Code Online (Sandbox Code Playgroud)

我在另一个表中也有一组帖子,如下所示:

+----+----------+--------+---------+
| id | threadid | userid | content |
+----+----------+--------+---------+
|  1 |        1 |      1 | Lorem   |
|  2 |        1 |      2 | Ipsum   |
|  3 |        2 |      2 …
Run Code Online (Sandbox Code Playgroud)

php mysql sql-order-by

5
推荐指数
1
解决办法
2611
查看次数

无序导致SQL

我一遍又一遍地读到它,SQL的核心是无序模型.这意味着多次执行相同的SQL查询可以以不同的顺序返回结果集,除非包含"order by"子句.有人可以解释为什么SQL查询可以在运行查询的不同实例中以不同的顺序返回结果集吗?情况可能并非如此,但肯定是可能的.

从算法上讲,当没有"order by"子句时,查询计划在确定结果集的顺序时不起任何作用吗?我的意思是当有一些查询的查询计划时,算法如何不总是以相同的顺序返回数据?

注意:我没有质疑订单的使用,我问为什么没有保证,因为我正在试图理解由于无法保证所带来的挑战.

sql t-sql sql-server oracle

5
推荐指数
2
解决办法
1951
查看次数

标签 统计

mysql ×2

sql-order-by ×2

oracle ×1

php ×1

select ×1

sql ×1

sql-server ×1

t-sql ×1