sqlfiddle.com 5.5.30 和 MariaDB 5.5.31 中的不同结果

2023-11-30

sqlfiddle:http://sqlfiddle.com/#!2/9a8b3/1

从小提琴中获取结构和数据并进行查询, 导入到我的 MariaDB 5.5.31 中,我得到不同的结果:

sqlfiddle

PID  NAME       LEAGUEPOINTS        TOTALLEAGUEPOINTS
2   Peter   16,13,9,4,2            44
1   Daniel  3425,543,234,43,29,22,21,21,19,17,13,12,12,12,11,9,9,9,8,7      4476

mariadb

pid  name    leaguepoints       totalleaguepoints   
2   Peter   16,13,9,4,2             44
1   Daniel  3425,543,234,43,29,22,21,21,19,17,13,12,12,12,11,9,9,9,8,7,7,6,5,5,4,4,4,3,3,2,1    4520

Query:

SELECT                
    p.pid,
    p.name,   
    GROUP_CONCAT( gC.leaguepoints ORDER BY leaguepoints DESC ) AS leaguepoints, 
    SUM(gC.leaguepoints) AS totalleaguepoints
FROM test_golf_player p
LEFT JOIN 
(
    SELECT pid, leaguepoints, @Sequence:=IF(@PrevPid = pid, @Sequence + 1, 0) AS aSequence, @PrevPid := pid
    FROM
    (
        SELECT pid, leaguepoints
        FROM test_golf_card 
        ORDER BY pid, leaguepoints DESC
    ) Sub1
    CROSS JOIN (SELECT @PrevPid := 0, @Sequence := 0) Sub2
) gC
ON p.pid = gC.pid AND aSequence < 20
GROUP BY p.pid
ORDER BY p.name DESC 

知道为什么吗?


恐怕我手头没有 MariaDB,但是你可以尝试以下操作来看看用户变量是如何输出的:-

SELECT  *
FROM test_golf_player p
LEFT JOIN 
(
    SELECT pid, leaguepoints, @Sequence:=IF(@PrevPid = pid, @Sequence + 1, 0) AS aSequence, @PrevPid := pid
    FROM
    (
        SELECT pid, leaguepoints
        FROM test_golf_card 
        ORDER BY pid, leaguepoints DESC
    ) Sub1
    CROSS JOIN (SELECT @PrevPid := 0, @Sequence := 0) Sub2
) gC
ON p.pid = gC.pid 
ORDER BY p.name DESC 

编辑-做了一些调查查看结果,MariaDB 似乎忽略了子查询中的 ORDER BY。因此,序列号是随机顺序的,并且当 pid 改变时也会重置(由于顺序不固定,它会随机重置)。谷歌了一下,看来这是 MariaDB 故意的一个功能。 SQL 标准将表定义为无序的行集,并且子选择被视为表,因此忽略 order by -https://kb.askmonty.org/en/why-is-order-by-in-a-from-subquery-ignored/ .

这是一个有点缺点。不确定是否有解决办法,因为我目前想不出解决办法。对于要处理的原始问题,我认为有必要使用相关的子选择,这可能效率不高。

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

sqlfiddle.com 5.5.30 和 MariaDB 5.5.31 中的不同结果 的相关文章

  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • SQL Join 列上类似于另一列[重复]

    这个问题在这里已经有答案了 可能的重复 mysql连接查询使用like https stackoverflow com questions 1930809 mysql join query using like 我想要进行连接 其中一列包含
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 使用Perl/DBI/MySQL/InnoDB查找外键信息

    我想以编程方式查找 MySQL 数据库中特定 InnoDB 表的外键 我正在使用 Perl 我偶然发现 dbh gt foreign key info 我刚刚尝试使用它 但似乎有点错误 它不会返回 ON DELETE 和 ON UPDATE
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 如何在 SEQUELIZE (nodeJS) 中创建触发器?

    我正在尝试使用sequelize 创建一个触发器 主要思想是创建一个实例CONFIG创建后USER USER MODEL module exports function sequelize DataTypes var User sequel
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 基于mysql表中唯一电子邮件地址的唯一代码?

    我有一个 mysql 表 它将存储用户电子邮件地址 每个地址都是唯一的 并且是主字段 和时间戳 我添加了另一列名为 unique code varchar 64 utf8 unicode ci 我非常感谢您提供的帮助 a 生成5位字母数字代
  • 如何在 MySQL 查询本身中检索 JSON 数组中存储的值?

    我有下表 product id product name image path misc 1 flex http firstpl course level id 19 group id 40067 2 Android http firstp
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • 将 NULL 变量插入数据库

    我将变量设置为 NULL 我试图将其插入数据库 但由于某种原因 它们一直以 0 的形式提交 我确信我试图插入的列允许 NULL 并且默认值设置为 NULL 这是我的代码 insert NULL query mysql query INSER
  • MySQL为每个组创建带有序列号的视图

    我在此网站上看到了类似的解决方案 但由于变量使用限制 它在视图中不可用 在MySQL中为每个组生成序列 https stackoverflow com questions 30118096 generating sequence for e
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t

随机推荐

  • 如何使用java从同一tomcat中的不同项目获取tomcat项目路径

    我正在使用此代码读取 tomcat 项目 称为 Project1 中的文件 现在我想使用 java util concurrent Tomcat 项目 称为 Project2 在不同的 tomcat 项目 称为 Project2 中获取此路
  • 图像预加载器如何工作?

    我很难理解图像预加载器的工作原理在java脚本中 因此 如果有人能用一个例子来解释他们如何工作 那将会有很大帮助 没有jquery 加载单个图像 浏览器将异步加载图像 这意味着当浏览器被赋予 src图像的 它将开始在后台加载该图像 但也会在
  • Java网络服务器和TIME_WAIT

    我在接收来自我公司生产的设备的信号的网络服务器方面遇到了问题 设备偶尔会重用刚刚使用过的源端口 这会导致 SYN 被服务器丢弃 然后设备会重试 直到旧套接字超出服务器上的 TIME WAIT 状态 然后服务器发送 SYN ACK 服务器是用
  • 如何在 howler.js 上链接声音

    我需要在 howler js 中播放一些声音 但我不知道如何链接它 例如 在字符串 BCG 需要先玩 b ogg 然后玩 c ogg 最后玩 g ogg 如果我只是使用 加载后 sound play b sound play c sound
  • 单击 Javascript 中的按钮显示 android DatePicker

    这是我的要求 我正在将一个 html 文件加载到 WebView 上 我在 html 文件中有一个按钮来选择日期 当我单击该按钮时 我想打开 Android 日期选择器对话框 选择日期后 我想在 html 文件中显示所选日期 谁能指导我 请
  • 如何使用半透明选择器选择屏幕上任意位置的颜色?

    小免责声明 这是我第一次在表单中搞乱图形 因此我对这里的概念不太熟悉 好吧 所以我一直在尝试制作一个应用程序来跟踪光标在整个屏幕中的位置并在其周围绘制一个椭圆 我借用的代码来自this问题 我更改了椭圆的 X 和 Y 位置 以便在光标周围自
  • 数据框的子集,其中一列的倒数第二个值

    我有一个包含很多列的 data frame 其中一列包含样本区域的代码 另一列包含样本的编号 我想从每个样本区域的倒数第二个样本中提取信息子集 我尝试了很多不同的事情 最后这是我最好的猜测 但它仍然不起作用 site lt sample 1
  • python 中的 list.insert() 实际上做了什么?

    我有这样的代码 squares for value in range 1 5 squares insert value 1 value 2 print squares print squares 0 print len squares 输出
  • nvd3 堆积面积图看起来有问题如何修复?

    我的堆积面积图如下所示 我使用的数据具有相同数量的值 就像示例中一样 我使用的数据位于 http pastebin com D07hja76 除了选择器之外 我使用的代码也几乎相似 var colors d3 scale category2
  • isEqualNode 因 html 空白不同而失败

    当我使用使用不同空格的 html 字符串时 我发现 Node isEqualNode 方法出现意外行为 无论有或没有空格 html 结构都是等效的 但 innerText 属性具有不同的值 这仅用于测试目的 因此不要对 html 字符串投反
  • 您可以编写单个 FetchXML 查询来获取一对多关系吗?

    是否可以编写一个获取根实体和多个子实体的 FetchXML 查询 我能做的就是1 1 詹姆斯 伍德是正确的 获取 XML 是递 归的 因此通过使用链接实体 您可以获得所需的信息 例如 以下内容是有效的
  • 用于在 HTML 中查找类名的正则表达式

    我想用grep找出是否 何处在一堆文件中使用了 html 类 正则表达式模式不仅应该找到 p class foo 但是也 p p class foo bar foo bar 到目前为止 我能够在下面的示例中找到 class foo 但无法使
  • 如何用Java读取视频文件的第一个和最后一个64kb?

    我想使用字幕 API 它需要视频文件的第一个和最后一个 64kb 的 md5 哈希值 我知道如何执行 md5 部分 只是想知道如何获取 128kb 的数据 Python 给出了 API 的示例 但遗憾的是我不明白它 this hash fu
  • 如何正确实现 C++ 中仅由抽象基已知的对象列表的创建(和分配)?

    我应该更喜欢堆栈分配而不是堆分配 最好按值传递 特别是当你正在创建新对象时 但同时 如果您按基类返回 您的对象将被切片 or 至少通过引用而不是传递指针 虽然您无法创建引用向量 我仔细地读了这一切 现在我觉得我知道的比以前知道的少了 我对如
  • 如何有效地使用 CompletableFuture 来映射每个输入的异步任务

    我想返回包含所有键到值的映射的映射 这些值是 API 对这些键的响应 我在用CompletableFuture and Guava为了这 以下是我的尝试 是否有其他标准方法可以使用 Java 8 和线程 API 实现相同的效果 地图正在id
  • numpy 用整数增量替换元素组

    import numpy as np data np array b b b a a a a c c d d d 我需要像这样逐步用整数替换每组字符串 data np array 0 0 0 1 1 1 1 2 2 3 3 3 我正在寻找一
  • 如何输入长度超过 4095 个字符的值?

    我试图input 包含大量 JSON 粘贴的字符串 为什么我要粘贴一大堆 json 超出了我的问题范围 但是当我说我有一个不完全愚蠢的原因时 请相信我 然而 input 仅抓取粘贴的前 4095 个字符 原因见这个答案 我的代码大致如下 i
  • 使用带有position:absolute的li时,IE8不会悬停

    我有一种图像地图 我在其中使用 li 来创建元素 并将鼠标悬停在弹出的信息上 html代码是 li a href span nbsp span span class para Some text and maybe an image goe
  • Haskell 使用特定的数据构造函数过滤嵌套列表

    假设我有数据类型 data Joke Funny String Lame String 并说我有以下嵌套列表 Funny Haha Lame boo Funny Haha Lame BOO 我将如何过滤这样的嵌套列表 以便嵌套列表中包含的任
  • sqlfiddle.com 5.5.30 和 MariaDB 5.5.31 中的不同结果

    sqlfiddle http sqlfiddle com 2 9a8b3 1 从小提琴中获取结构和数据并进行查询 导入到我的 MariaDB 5 5 31 中 我得到不同的结果 sqlfiddle PID NAME LEAGUEPOINTS