我想从表中选择后对数据行进行编号。 问题是,我不需要顺序编号,但是应该从1到3依次编号,直到最后,如下所示:

1 | first row
2 | second row
3 | third row 
1 | fourth row
2 | and
3 | ....
1
2
3

我正在尝试此查询,但无法正常工作:

mysql -> SET @n = 0;
-> SELECT 
CASE 
    WHEN nnn = 3 THEN  @n := 0
        ELSE nnn
    END
FROM  (
    SELECT @n := @n + 1 AS nnn FROM mytable
) AS t;

如何使其正常工作?

#1楼 票数:3 已采纳

根据以下答案改编而成: 使用MySQL,如何生成包含表中记录索引的列?

SELECT  MOD(@curRow := @curRow + 1, 3) AS row_number
FROM    mytable m
JOIN    (SELECT @curRow := 0) r;

#2楼 票数:1

如果您只需要选择并假设有列,例如“ id”,即连续的,那么以下查询应该会有所帮助:

SELECT IF ((id%3) = 0, 3 , (id%3)) AS new_id, <other columns> FROM <table_name>;

希望能帮助到你...

  ask by OTAR translate from so

未解决问题?本站智能推荐:

1回复

使用p:dataTable进行行编号

我有这个查询: MySQL查询中用于结果编号的@rownum:=@rownum+1部分,因为Primefaces当前没有显示编号列的功能。 有没有一种方法可以显示Primefaces列编号而无需执行@rownum:=@rownum+1吗? 如果不是,是否可以仅使用Criter
4回复

分页和行编号

我想在每个帖子上打印一个递增数字。 像每个论坛都有这个。 我目前使用这个: 可以说我每页打印5个帖子 这是发生了什么: 我不想那样,我希望它保持从第一页开始的最高数字 的SQL:
1回复

行编号顺序不正确

我有两个表(问题和答案),其中一个行用于回答问题,另一个用于回答问题。 问题更改时,问题的行号会增加。 答案的行号使每个答案递增,并针对每个新问题重置为1。 两个行编号都按预期增加,但是排序顺序错误。 另外,我不希望查询输出的变量检查当前记录的问题是否与最后一条记录的问题匹配。 我
2回复

MySQL中的编号行

我想对mysql中的选定行进行编号。 我的会议桌结构: 所以我只想选择从今天起算更大的日期行,结果应该像这样:
1回复

组上的行编号不正确

感谢您帮助我学习mysql。 我正在尝试动态生成仅在组中(对于给定列)有新记录时才递增的行号。 我的代码可以正常工作-它应该在适当的时候更改,但是值都错了。 我有一个称为fruits的表,只有一个称为preference列( varchar )。 它按此顺序有九(9)个记录:
1回复

自动更新MySql行编号

我已经在MySql中创建了一个表,其中“ id”列为auto_increment和Primary_key。 我最初做了3行,即1,2,3。 我删除了 2行,但编号仍为1、3。如何将其更改为1,2。 MySql表
1回复

MySQL行编号没有得到理想的结果

我有以下查询,我想要做的是添加一个列,以确定这是一个不同的客户的订单。 entity_id对于每个订单都是唯一的,所以我想要做的就是为created_at订购的每个客户编号唯一的entity_id。 问题是订单中的每个项目都有一行,因此我的当前查询编号错误。 这是目前的结果 这
1回复

左外连接? 行编号问题

我有三个表,一个表有主题,一个表用于用户数据,一个表用于存储用户订阅。 用户可以/不可以订阅其可选项,因此为了获得具有订阅状态的所有用户列表,我使用左连接作为 我一次使用这个输出作为整体,但是现在随着数据的增长,我已经在我的应用程序中实现了这个输出的分页。 对于分页,我创建了