Mysql 当没有ORDERBY子句时,首先返回哪个字段?
在MYSQL中,当没有ORDERBY子句时,首先返回哪些行Mysql 当没有ORDERBY子句时,首先返回哪个字段?,mysql,Mysql,在MYSQL中,当没有ORDERBY子句时,首先返回哪些行 SELECT * FROM table; 查看phpmyadmin,它似乎首先将我的数据与最新数据排序,尽管我没有一个带有时间戳的字段。默认排序是什么?它基于隐藏字段吗 /希望这足够清楚 当没有ORDERBY子句时,任何SQL数据库中都没有定义返回行的顺序 但是,它通常是先写后返回的,原因很简单,因为这是将行写入磁盘的顺序,但这是不可靠的,因为: 数据库没有义务对行进行排序 早期行可能已被删除,早期磁盘页可能会被以后插入的行重用 数据
SELECT * FROM table;
查看phpmyadmin,它似乎首先将我的数据与最新数据排序,尽管我没有一个带有时间戳的字段。默认排序是什么?它基于隐藏字段吗
/希望这足够清楚
当没有ORDERBY子句时,任何SQL数据库中都没有定义返回行的顺序 但是,它通常是先写后返回的,原因很简单,因为这是将行写入磁盘的顺序,但这是不可靠的,因为:
当没有ORDERBY子句时,任何SQL数据库中都没有定义返回行的顺序 但是,它通常是先写后返回的,原因很简单,因为这是将行写入磁盘的顺序,但这是不可靠的,因为:
当没有ORDERBY子句时,任何SQL数据库中都没有定义返回行的顺序 但是,它通常是先写后返回的,原因很简单,因为这是将行写入磁盘的顺序,但这是不可靠的,因为:
当没有ORDERBY子句时,任何SQL数据库中都没有定义返回行的顺序 但是,它通常是先写后返回的,原因很简单,因为这是将行写入磁盘的顺序,但这是不可靠的,因为:
SQL本身不指定行返回的顺序,除非您有一个
orderby
子句,因此建议您不要依赖这种行为。如果没有排序子句,大多数DBMS几乎肯定会以最方便的顺序返回行
如果您切换到另一个DBMS,它可能会改变。如果您切换到另一个版本的MySQL,它可能会改变。它可能会随着数据添加到数据库或从数据库中删除而更改
它可能会根据是使用索引还是进行完整表扫描而改变。前一种情况可能会根据索引属性本身对其进行排序,因为这是它提取它的方式。后一种情况将按照行在主数据区域中占据的任何顺序进行“排序”(即,实际上未排序)
如果DBMS开发人员是一个虐待狂类型,那么它甚至可能在一个月的任意时间发生变化,因为大多数人都是这样(向我在赫斯利的所有DB2开发人员朋友问好)。SQL本身不指定返回行的顺序,除非您有一个
order by
子句,因此,我们建议您不要依赖这种行为。如果没有排序子句,大多数DBMS几乎肯定会以最方便的顺序返回行
如果您切换到另一个DBMS,它可能会改变。如果您切换到另一个版本的MySQL,它可能会改变。它可能会随着数据添加到数据库或从数据库中删除而更改
它可能会根据是使用索引还是进行完整表扫描而改变。前一种情况可能会根据索引属性本身对其进行排序,因为这是它提取它的方式。后一种情况将按照行在主数据区域中占据的任何顺序进行“排序”(即,实际上未排序)
如果DBMS开发人员是一个虐待狂类型,那么它甚至可能在一个月的任意时间发生变化,因为大多数人都是这样(向我在赫斯利的所有DB2开发人员朋友问好)。SQL本身不指定返回行的顺序,除非您有一个
order by
子句,因此,我们建议您不要依赖这种行为。如果没有排序子句,大多数DBMS几乎肯定会以最方便的顺序返回行
如果您切换到另一个DBMS,它可能会改变。如果您切换到另一个版本的MySQL,它可能会改变。它可能会随着数据添加到数据库或从数据库中删除而更改
它可能会根据是使用索引还是进行完整表扫描而改变。前一种情况可能会根据索引属性本身对其进行排序,因为这是它提取它的方式。后一种情况将按照行在主数据区域中占据的任何顺序进行“排序”(即,实际上未排序)
如果DBMS开发人员是一个虐待狂类型,那么它甚至可能在一个月的任意时间发生变化,因为大多数人都是这样(向我在赫斯利的所有DB2开发人员朋友问好)。SQL本身不指定返回行的顺序,除非您有一个
order by
子句,因此,我们建议您不要依赖这种行为。如果没有排序子句,大多数DBMS几乎肯定会以最方便的顺序返回行
如果您切换到另一个DBMS,它可能会改变。如果您切换到另一个版本的MySQL,它可能会改变。它可能会随着数据添加到数据库或从数据库中删除而更改
它可能会根据是使用索引还是进行完整表扫描而改变。前一种情况可能会让我