为什么 SQL 查询的结果没有按照我期望的顺序返回?

2023-11-30

如果将项目插入表中,然后我编写一个查询,例如select * from table,为什么结果与我期望的顺序不一样?


可以通过在语句中使用“Order by”子句来强制查询的顺序。 SQL 数据库实际上并不了解您放置内容的顺序,或者按照给定顺序存储数据。这意味着您需要告诉 SQL 您想要项目的顺序。例如:

Select * from Table
  order by column1 desc

想象一下,这就像把一些东西交给你的朋友——她稍后会把所有的东西都给你,但同时她会把它存放在某个地方。当您不想为其他东西腾出空间时,她可能会移动它,或者可能按照您交给她的顺序将其交还给她,但您没有告诉她保持秩序,所以她不会。

数据库需要能够在后台移动事物,因此它们的构建方式本质上并不知道任何顺序 - 当您将其提供给数据库时,您需要知道顺序,以便您可以将其放回数据库中稍后订购您想要的。 order 子句允许 SQL 对数据强加一个顺序,但它不记得也不具有自己的顺序。

很重要的一点:即使 SQL 在最后 100 万次没有使用 order by 语句的情况下以正确的顺序返回项目,它也不能保证它会这样做。即使表上存在聚集索引,也不能保证结果按照您期望的顺序返回。特别是当 SQL 版本发生变化时,不显式使用 order by 子句可能会破坏假定查询将按照所需顺序排列的程序!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 SQL 查询的结果没有按照我期望的顺序返回? 的相关文章

  • 用数组“插入”

    我想知道是否有一种方法可以在值列表上使用 插入 我正在尝试这样做 insert into tblMyTable Col1 Col2 Col3 values value1 value2 value3 所以 我想说的是 value2 将是一个字
  • 如何使用 SQL 获取数据库中所有表的列表?

    获取 SQL Server 上特定数据库中所有表的名称的最佳方法是什么 SQL Server 2000 2005 2008 2012 2014 2016 2017 或 2019 SELECT FROM INFORMATION SCHEMA
  • 函数 SQL 中的函数

    我可以在表值函数中调用标量函数吗 Thanks 是的 只要表值函数完成后返回一个表即可 用户自定义函数可以嵌套 也就是说 一个用户定义的函数可以 呼叫另一个 嵌套级别为 被调用函数时递增 开始执行 并在以下时间递减 被调用函数完成 执行 用
  • 使用 MySQL 作为元存储从 HIVE 查询元数据

    我正在寻找一种使用 HiveQL 命令查询 HIVE 数据元数据的方法 我配置了一个 MySQL 元存储 但需要通过 HIVE 命令查询元数据 因为然后我想通过 ODBC 连接到 HIVE 系统来访问数据 要从 Hive 查看它们 必须使用
  • IF EXISTS (SELECT 1...) 与 IF EXISTS (SELECT TOP 1 1...)

    这是一个纯粹的学术问题 这两个陈述实际上是相同的吗 IF EXISTS SELECT TOP 1 1 FROM Table1 SELECT 1 ELSE SELECT 0 Versus IF EXISTS SELECT 1 FROM Tab
  • 将 SQLite 与经典 ASP 结合使用

    我正在构建一个 快速小 应用程序 它需要一个小型数据库 我想使用经典 ASP 即不是 ASP NET 并且我想知道 SQLite 用于数据库 可以使用 Classic ASP 中的 SQLite 吗 如何从 ASP 打开 创建 使用 SQL
  • 如何重置 MySQL 5.7 上的默认“root”用户行为

    我对新的 MySQL 5 7 root 用户行为感到满意 它只允许本地主机上的linux root用户以MySQL root用户身份登录MySQL 我最近导入了我的旧用户表 它覆盖了这个更改 现在任何人都可以使用密码在本地主机上以 root
  • 在重复密钥更新时插入...在哪里?

    我正在做一个INSERT ON DUPLICATE KEY UPDATE但我需要更新部分是有条件的 只有在某些额外条件发生变化时才进行更新 然而 WHERE不允许这样做UPDATE 有什么解决方法吗 我无法执行 INSERT UPDATE
  • 在php mysql排行榜表中显示用户排名?

    我创建了一个测验页面 将登录用户的测验结果存储到排行榜 我有一个名为 Members 的表 其中包含 user 和 quiz score 列 我根据登录用户进行的测验结果打印出排行榜 我在个人资料页面的排行榜中显示特定用户的位置时遇到问题
  • 如何将 Snowflake 中的数组与不同的值连接起来?

    我有一个 MERGE 场景ARRAY AGG 主脚本中的函数 一旦我有了匹配项 我想组合源表和目标表中的数组 但不想添加现有值 我看过使用ARRAY CAT 但它没有返回预期的输出 这是查询 SELECT ARRAY CAT ARRAY C
  • 使用从另一个表 MYSQL 获取的值从一个表中选择行

    我的数据库中目前有 2 个 mysql 表 Film and Film Ratings Report Film 的主键是filmid用于识别电影分级Film Ratings Report table 我想知道是否可以仅使用 MYSQL 查询
  • 在 ASP.Net Core 应用程序中动态更改 SQL Server 连接字符串

    我一开始打开一个数据库 然后需要根据用户选择两个值打开另一个数据库 数据库选择必须在运行时进行 并且每次都会改变 尝试使用连接字符串类访问连接字符串 并尝试了其他选项 例如我不理解的单例 我在运行 SQL Server Express 的本
  • 变更数据捕获性能损失是否仅限于启用 CDC 的表?

    我读到启用更改数据捕获显然会对数据库性能产生影响 这种性能损失是否仅影响启用了 CDC 的表 还是会影响数据库中的所有操作 在我的情况下 我使用 SSIS 并且有大量数据移入和移出临时数据库 我的系统中还有一些用于转换的查找表 我希望使用
  • C# SMO 远程数据库备份到本地机器

    我有一个执行 SQL 数据库备份和恢复的应用程序 这在本地计算机上运行良好 但是如果我针对另一台计算机上托管的 SQL 服务器运行此应用程序 则会出现以下错误 Microsoft SqlServer Management Smo Faile
  • PL/SQL 过程成功完成但没有显示任何内容

    我有以下过程代码 create or replace PROCEDURE Ventas cliente p DNI IN CHAR IS CURSOR c pedidos clientes IS SELECT FROM Pedidos ve
  • PHP 中的依赖注入

    我一直在研究依赖注入 我是在关注某件事还是完全没有关注 代码是好是坏 依赖注入与否 下面的代码是CMS系统的基础 现在有一个名为 page details 的表 其中存储了所有网页 目录 文件结构 htaccess index php cl
  • mysql 触发器与 php 脚本

    我有下一个 mysql 触发器 DELIMITER CREATE TRIGGER Test Insert BEFORE INSERT ON sat clientLocation FOR EACH ROW BEGIN DECLARE cmd
  • Django MySQL 创建表时出错

    我有一个类似的问题这张票 https code djangoproject com ticket 18256在 Django 论坛上提出 我该如何解决这个问题 我还扩展了一个用户模型 如下所示 class Profile models Mo
  • 如何使用 php $row 检索 sql 日期时间对象?

    例如 sql SELECT FROM db query sqlsrv query conn sql while row sqlsrv fetch array query echo row date column 会崩溃 我找到的大多数答案都
  • SQL 几何 VS 小数(8,6) 纬度、经度性能

    我正在研究选择与给定坐标一定距离内的最近点的性能 选项是以太使用两个decimal 8 6 纬度 长列或单列geography列并与之合作 我只感兴趣哪个更快 TL DR地理大约快 10 倍 好的 我已经设置了测试 几张桌子 一张id la

随机推荐

  • Visual Studio 新项目“确定”按钮呈灰色

    我认为这只是意味着我缺少依赖项 但我无法创建任何类型的项目 控制台应用程序 Web 应用程序 Windows 窗体等 我运行的是 VS 2012 premium 您可能正在尝试将项目保存到您没有写入权限的目录位置 它可能是某处的网络驱动器
  • MATLAB - 编译 jpeg_read.c 创建 mexmaci64 文件时出错[重复]

    这个问题在这里已经有答案了 最近 我将 Matlab 项目从 Windows 操作系统转移到了 Mac 操作系统 所以我的 jpeg read mexw64 文件不再工作 我需要创建一个与 Mac OS 兼容的新 mexmaci64 文件
  • 显示应用程序端点的照片

    这是我的问题 我在一个大型 UCMA 项目上工作了 3 个月 现在我想添加一个小功能 我有很多可以动态添加 修改或删除的 ApplicationEndpoint 我希望每次创建 ApplicationEndpoint 时都指定将在 Micr
  • 位图、Bitmap.recycle()、弱引用和垃圾回收

    据我所知 在 Android 上 建议将 Bitmap 对象作为 WeakReferences 引用 以避免内存泄漏 当位图对象不再保留硬引用时 垃圾收集器将自动收集它 现在 如果我理解正确的话 必须始终调用 Bitmap recycle
  • C++ SDL 的作用是什么?做?

    screen SDL SetVideoMode 1000 1000 32 SDL HWSURFACE SDL FULLSCREEN 什么是 do in SDL HWSURFACE SDL FULLSCREEN 我尝试谷歌搜索 但谷歌不接受特
  • 画布渐变表现

    我目前正在使用画布编写一个小游戏 对于游戏 我需要某种雾来隐藏地图的大部分 并且只有玩家周围的一小部分区域应该可见 为此 我使用第二个画布覆盖游戏发生的画布 并用渐变填充它 从透明到黑色 function drawFog fogc clea
  • 连接到 firestore 模拟器时 Python firebase_admin 挂起

    我无法从 python 连接到 firestore 模拟器 连接并写入文档到真实项目工作正常 但是在设置环境时 设置函数永远不会解析变量 FIRESTORE EMULATOR HOST 代码 os environ FIRESTORE EMU
  • 如何在 Python OpenCV 中保存视频

    我已经使用 CV2 打开了一个视频 使用进行了一些更改cv2 rectangle 现在 当我这样做时cv2 imshow frame frame 它会播放视频 相反 我想以原始大小和帧速率将视频保存在某处 您可以逐帧保存视频 基于文档上的示
  • 返回在 javascript 对象中找不到的键的默认值

    当调用不在对象中的键时 将返回 undefined 我想返回一个我指定的字符串而不是未定义的字符串 例如 let obj key1 key1 let res obj key2 console log res I want console l
  • 如何在 Angularjs 中创建过滤器?

    我有这个课程集合 id 1 courseId 2 text John id 2 courseId 2 text Willi id 3 courseId 2 text Inga id 4 courseId 1 text Jerry id 5
  • 如何用 VI/VIM 编辑器中每次出现的不同单词替换查找单词?

    例如 我有一个文本 10 3 4 2 10 4 10 不 我想用不同的单词更改每 10 个 我知道 s 10 replace words gc 但它只让我像 yes no 一样进行交互式替换 但我想用不同的单词来更改 10 的每次出现 例如
  • 具有背景颜色的粗体文本样式的 Excel 行的 Java 代码

    我用谷歌搜索了一些代码并找到了一些答案 但无法以粗体形式获取 Excel 文件输出并设置背景颜色 我尝试过以下代码 你能告诉我哪里错了吗 请看一下 谢谢 仅供参考 我将用蓝色或任何浅色以粗体显示第一行 背景 如果你知道请帮忙看一下代码 Ex
  • 为什么在子类化 tf.keras 层(或模型)类时实现“call”方法使层(模型)对象可调用?

    当编写自定义的 tf keras 层时 我们必须实现 call 方法 因为只有 如果对象具有有效的 则可以像使用 的函数一样调用类的对象 call 方法 虽然我没有找到类似的东西 class tf keras model def call
  • Chrome 忽略从 WebAPI 控制器发送的 HttpResponse 的 Content-Disposition 标头中建议的扩展名

    我正在尝试编写一个 WebAPI 控制器 它可以动态生成 W indows 快捷方式文件 lnk 并将其发送回客户端 但即使我在 Content Disposition 标头中指定 lnk 作为扩展名构建响应时 Chrome 仍会在 另存为
  • Spring Boot yaml 文件中数字类型的 @Value

    I got a data yml在以下结构的资源文件夹中 main header info 3600L 我使用Spring Boot版本2 4 2 我想注入属性main header1 info对于一个字段 我按以下方式执行此操作 Comp
  • 如何查找包含 的存储过程?

    我需要在 SQL Server 2008 中搜索存储过程 其中可能包含 数据库字段的名称或变量名称 SELECT ROUTINE NAME ROUTINE DEFINITION FROM INFORMATION SCHEMA ROUTINE
  • IE浏览器中的JQuery选择框焦点问题

    下面的 input 与标签匹配 该代码在所有浏览器中都可以正常工作 除了在 Internet Explorer 中 我需要单击选择框两次才能获得下拉列表 input focus function var rc this parents rc
  • 如何将密钥信息保留在 Git 存储库之外

    我的存储库中有一些文件 其中一个包含 Adafruit 秘密密钥 我想使用 Git 来存储我的存储库 但我不想发布密钥 保守秘密的最佳方法是什么 而不必每次提交和推动某件事时都将其清空 根据您想要实现的目标 您可以选择以下方法之一 将文件保
  • 使用 d3.js 在强制布局中添加和删除节点时出现问题

    我试图通过从 Zabbix API 获取数据来可视化服务器可用性 以及随后的其他事情 一旦可行 您可以在 Zabbix API 文档中的 此处 1 中查看有关返回数据的示例 获取数据不是问题 但我认为 d3 js 的数据连接遇到了一些问题
  • 为什么 SQL 查询的结果没有按照我期望的顺序返回?

    如果将项目插入表中 然后我编写一个查询 例如select from table 为什么结果与我期望的顺序不一样 可以通过在语句中使用 Order by 子句来强制查询的顺序 SQL 数据库实际上并不了解您放置内容的顺序 或者按照给定顺序存储