- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 Java 和 MySQL 编写一个运行程序。这样运行者可以在比赛结束后统计谁是第一名。运行者也属于一个类别。因此,每个类别下也有获胜者。所有数据都在 MySQL 中的单独表中,当比赛结束时,查询必须显示表的一般位置和类别,具体取决于他们完成的速度。
我在 MySQL 中有这些表:
events (id, name, isActive)
runners (id, name, sex)
category (id, name, isActive)
inscriptions (id, event_id, runner_id, category, number_assigned, isActive)
race (id, inscription_id, start, end)
我有这个查询,可以在比赛结束后为我提供牌 table 位置。
SELECT category.`name` AS `CATEGORÍA`, inscriptions.number_assigned AS `NÚMERO`, runners.name AS `COMPETIDOR`, runners.sex AS `SEXO`, races.`start` AS `INICIO`, races.`end` AS `FIN`, SEC_TO_TIME(UNIX_TIMESTAMP(races.`end`) - UNIX_TIMESTAMP(races.`start`)) AS `TIEMPO`
FROM `events`
INNER JOIN `inscriptions` ON inscriptions.event_id = `events`.id
INNER JOIN `races` ON races.inscription_id = inscriptions.id
INNER JOIN `category` ON inscriptions.category = category.id
INNER JOIN `runners` ON inscriptions.runner_id = runners.id
WHERE `events`.id = 1
AND inscriptions.isFinished = 0
AND `events`.isActive = 1
AND `inscriptions`.isActive = 1
AND `category`.isActive = 1
AND `runners`.isActive = 1
ORDER BY races.`end` IS NULL, SEC_TO_TIME(UNIX_TIMESTAMP(races.`end`) - UNIX_TIMESTAMP(races.`start`)) ASC;
第一次查询的原因是因为我需要表位置的信息。我在组子句中包含“race.end IS NULL”,因为我需要在表格末尾没有结束时间(没有完成比赛)的运行者。
这给了我这样的结果:
好的。如果我尝试执行添加“行号”的正常过程,一切都会变得一团糟,因为查询首先为该行分配编号,然后在其中应用 order 子句。
SELECT
@r := @r+1 AS `POSICION`,
`category`.`name` AS `CATEGORÍA`,
`inscriptions`.`number_assigned` AS `NÚMERO`,
`runner`.`name` AS `COMPETIDOR`,
`runners`.`sex` AS `SEXO`,
`races`.`start` AS `INICIO`,
`races`.`end` AS `FIN`,
SEC_TO_TIME(UNIX_TIMESTAMP(`races`.`end`) - UNIX_TIMESTAMP(`races`.`start`)) AS `TIEMPO`
FROM
(SELECT @r:=0)y, `events`
INNER JOIN `inscriptions` ON (`inscriptions`.`event_id` = `events`.`id`)
INNER JOIN `races` ON (`races`.`inscription_id` = `inscriptions`.`id`)
INNER JOIN `category` ON (`inscriptions`.`category` = `category`.`id`)
INNER JOIN `runners` ON (`inscriptions`.`runner_id` = `runners`.`id`)
WHERE
`events`.`id` = 1 AND
`inscriptions`.`isFinished` = 0 AND
`events`.`isActive` = 1 AND
`inscriptions`.`isActive` = 1 AND
`category`.`isActive` = 1 AND
`runners`.`isActive` = 1 AND
`races`.`end` IS NOT NULL
ORDER BY
`races`.`end` IS NULL,
SEC_TO_TIME(UNIX_TIMESTAMP(`races`.`end`) - UNIX_TIMESTAMP(`races`.`start`)) ASC;
到处都是乱七八糟的:
好的。经过一段时间的搜索后,我进行了查询以获取我的“表位置”,然后将其与另一个查询交叉以放置到目前为止的行号。工作正常。
现在是类别问题。
当尝试用类别系统做同样的事情时,查询只计算数字的连续序列,类别中没有内存,例如“后面 10 行,另一个主人在 4 的位置,所以这需要是 5 ”。为了更具体地附上错误代码和应该错误代码。
错误:
1 1 Especiales Especiales 614 Alex Chancusi M 2016-10-09 07:12:53 2016-10-09 07:32:16 00:19:23
2 1 Juvenil Juvenil 491 Anthony Recalde Carrillo M 2016-10-09 07:12:53 2016-10-09 07:35:34 00:22:41
3 1 Master Master 610 Marco Almache M 2016-10-09 07:12:53 2016-10-09 07:35:50 00:22:57
4 1 Senior Senior 632 Cristian Rafael Caizapanta M 2016-10-09 07:12:53 2016-10-09 07:36:17 00:23:24
5 2 Senior Senior 138 Dennys Morocho Guayanlema M 2016-10-09 07:12:53 2016-10-09 07:37:00 00:24:07
6 1 Master Master 591 Manuel Suntaxi M 2016-10-09 07:12:53 2016-10-09 07:37:35 00:24:42
7 1 Senior Senior 508 Jhon Robles M 2016-10-09 07:12:53 2016-10-09 07:38:44 00:25:51
8 2 Senior Senior 536 Margaret Karic Zoroitich F 2016-10-09 07:12:53 2016-10-09 07:38:53 00:26:00
9 3 Senior Senior 538 Carlos Moreno M 2016-10-09 07:12:53 2016-10-09 07:39:20 00:26:27
10 1 Master Master 550 Luis Toaquiza M 2016-10-09 07:12:53 2016-10-09 07:39:43 00:26:50
是错误的,因为如果您在位置 3 处看到第一个位置是“Master”,然后是位置 6 另一个具有相同位置的“Master”,在第 10 个位置也是如此。
好:
1 1 Especiales Especiales 614 Alex Chancusi M 2016-10-09 07:12:53 2016-10-09 07:32:16 00:19:23
2 1 Juvenil Juvenil 491 Anthony Recalde Carrillo M 2016-10-09 07:12:53 2016-10-09 07:35:34 00:22:41
3 1 Master Master 610 Marco Almache M 2016-10-09 07:12:53 2016-10-09 07:35:50 00:22:57
4 1 Senior Senior 632 Cristian Rafael Caizapanta M 2016-10-09 07:12:53 2016-10-09 07:36:17 00:23:24
5 2 Senior Senior 138 Dennys Morocho Guayanlema M 2016-10-09 07:12:53 2016-10-09 07:37:00 00:24:07
6 2 Master Master 591 Manuel Suntaxi M 2016-10-09 07:12:53 2016-10-09 07:37:35 00:24:42
7 3 Senior Senior 508 Jhon Robles M 2016-10-09 07:12:53 2016-10-09 07:38:44 00:25:51
8 4 Senior Senior 536 Margaret Karic Zoroitich F 2016-10-09 07:12:53 2016-10-09 07:38:53 00:26:00
9 5 Senior Senior 538 Carlos Moreno M 2016-10-09 07:12:53 2016-10-09 07:39:20 00:26:27
10 3 Master Master 550 Luis Toaquiza M 2016-10-09 07:12:53 2016-10-09 07:39:43 00:26:50
等等。总是有不同的类别名称,因此类别列表不是一个合适的解决方案。
用于此结果的最终查询是:
SELECT @posGeneral := CASE WHEN z.`FIN` IS NULL THEN 'Not finished yet' ELSE @posGeneral+1 END AS `POS GENERAL`,
@posCat := CASE WHEN z.`FIN` IS NULL THEN '-' ELSE CASE WHEN @cat = z.`CATEGORÍA` THEN @posCat + 1 ELSE 1 END END AS `POS CATEGORÍA`,
@cat := z.`CATEGORÍA` AS `CAT`,
z.* FROM(
SELECT
`category`.`name` AS `CATEGORÍA`,
`inscriptions`.`number_assigned` AS `NÚMERO`,
`runner`.`name` AS `COMPETIDOR`,
`runners`.`sex` AS `SEXO`,
`races`.`start` AS `INICIO`,
`races`.`end` AS `FIN`,
SEC_TO_TIME(UNIX_TIMESTAMP(`races`.`end`) - UNIX_TIMESTAMP(`races`.`start`)) AS `TIEMPO`
FROM
`events`
INNER JOIN `inscriptions` ON (`inscriptions`.`event_id` = `events`.`id`)
INNER JOIN `races` ON (`races`.`inscription_id` = `inscriptions`.`id`)
INNER JOIN `category` ON (`inscriptions`.`category` = `category`.`id`)
INNER JOIN `runners` ON (`inscriptions`.`runner_id` = `runners`.`id`)
WHERE
`events`.`id` = 1 AND
`inscriptions`.`isFinished` = 1 AND
`events`.`isActive` = 1 AND
`inscriptions`.`isActive` = 1 AND
`category`.`isActive` = 1 AND
`runners`.`isActive` = 1
ORDER BY
`races`.`end` IS NULL,
SEC_TO_TIME(UNIX_TIMESTAMP(`races`.`end`) - UNIX_TIMESTAMP(`races`.`start`)) ASC
)z, (SELECT @posGeneral:=0, @posCat:=0)y;
最佳答案
没关系,我只是想办法...
它与 MySQL 如何理解查询以及如何处理结果查询有关...
稍微玩一下 ORDER 子句并在查询 z.、y. 和 x.* 中添加一个新级别
z.* 为行号y.* 用于“类别”位置(按类别排序)x.* 原始查询。
还是谢谢你
关于java - 每个组的MySQL行号与组内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121261/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!