当前位置: 首页 > 面试题库 >

使用MySQL,如何生成包含表中记录索引的列?

司空宗清
2023-03-14
问题内容

有什么办法可以从查询中获取实际的行号?

我希望能够通过一个名为score的字段来订购一个名为League_girl的表;并返回用户名和该用户名的实际行位置。

我想对用户进行排名,以便我可以告诉特定用户在哪里。乔在200中排名100,即

User Score Row
Joe  100    1
Bob  50     2
Bill 10     3

我在这里看到了一些解决方案,但是我已经尝试了大多数解决方案,但实际上没有一个返回行号。

我已经试过了:

SELECT position, username, score
FROM (SELECT @row := @row + 1 AS position, username, score 
       FROM league_girl GROUP BY username ORDER BY score DESC)

作为派生

…但是它似乎没有返回行位置。

有任何想法吗?


问题答案:

您可能需要尝试以下方法:

SELECT  l.position, 
        l.username, 
        l.score,
        @curRow := @curRow + 1 AS row_number
FROM    league_girl l
JOIN    (SELECT @curRow := 0) r;

JOIN (SELECT @curRow := 0)部分允许变量初始化,而无需单独的SET命令。

测试用例:

CREATE TABLE league_girl (position int, username varchar(10), score int);
INSERT INTO league_girl VALUES (1, 'a', 10);
INSERT INTO league_girl VALUES (2, 'b', 25);
INSERT INTO league_girl VALUES (3, 'c', 75);
INSERT INTO league_girl VALUES (4, 'd', 25);
INSERT INTO league_girl VALUES (5, 'e', 55);
INSERT INTO league_girl VALUES (6, 'f', 80);
INSERT INTO league_girl VALUES (7, 'g', 15);

测试查询:

SELECT  l.position, 
        l.username, 
        l.score,
        @curRow := @curRow + 1 AS row_number
FROM    league_girl l
JOIN    (SELECT @curRow := 0) r
WHERE   l.score > 50;

结果:

+----------+----------+-------+------------+
| position | username | score | row_number |
+----------+----------+-------+------------+
|        3 | c        |    75 |          1 |
|        5 | e        |    55 |          2 |
|        6 | f        |    80 |          3 |
+----------+----------+-------+------------+
3 rows in set (0.00 sec)


 类似资料:
  • 本文向大家介绍如何使用MySQL LIKE查询搜索包含%的列值?,包括了如何使用MySQL LIKE查询搜索包含%的列值?的使用技巧和注意事项,需要的朋友参考一下 要使用%搜索列值,语法如下- 让我们首先创建一个表- 使用insert在表中插入一些记录- 使用选择显示表中的所有记录- 这将产生以下输出- 这是使用类似查询的查询来搜索其中包含%的列值的查询- 这将产生以下输出-

  • 问题内容: 查看执行计划,我在输出列表中看到“列A”。该操作是对非聚集索引的索引扫描:“ IX_name” 当我看到此索引的定义时。在“索引键”列或“包含”列中都看不到“ A列”。 如何使用非聚集索引来输出索引中不存在的列。它不应该在表或其他带有“ A列”的索引上使用“表扫描”。 问题答案: 如果表本身是集群1,那么所有二级索引都包含集群键2的副本(该键确定集群表中行的物理顺序)。 原因:群集表中

  • 问题内容: 我在使用Python生成html文档时遇到了一些问题。我正在尝试创建目录树的HTML列表。这是我到目前为止所拥有的: 如果只有根目录,一级子目录和文件,这似乎很好。但是,添加另一级子目录会导致出现问题(因为我认为关闭标记在最后输入的次数不足)。但是我很难理解它。 如果无法通过这种方式完成操作,是否有更简单的方法可以执行?我正在使用Flask,但是对模板的经验不足,所以也许我缺少了一些东

  • 问题内容: 我目前正在使用在大多数类型和元素上具有/ 的XML模式。当我从此XML模式生成Java Bean时,这些Bean的Javadoc仅包含一些有关类型/元素的允许内容的通用生成信息。 我想在相关位置查看标记的内容(例如,complextType的标记的内容应显示在代表该complexType的类的Javadoc中)。 有什么办法可以做到这一点? 编辑 :此XML Schema将在具有JAX

  • 问题内容: 这是很常见的,我遍历一个Python列表,让双方的内容 和 他们的索引。我通常会执行以下操作: 我发现这种语法有点难看,尤其是函数内部的部分。还有其他更优雅/ Python风格的方法吗? 问题答案: 使用内置函数:http : //docs.python.org/library/functions.html#enumerate

  • 问题内容: 我正在使用SASS的SCSS语法来创建动态网格系统,但是遇到了麻烦。 我试图像这样使网格系统完全动态: 然后我创建像这样的列: 哪个输出: 这很好用,但是 我接下来要做的是根据选择的$ columns的数目动态生成一列由逗号分隔的长列类 -例如,我希望它看起来像这样: 我已经累了: 但是输出是这样的: 我对这里的逻辑以及创建这样的东西所需的SCSS语法有些困惑。 有人有什么想法吗? 谢