Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中为每个组生成序列_Mysql_Sequence - Fatal编程技术网

在MySQL中为每个组生成序列

在MySQL中为每个组生成序列,mysql,sequence,Mysql,Sequence,如何为MySQL生成此序列? (注意:对于每个唯一的对,重新生成序列) 1,1--1 1,1--2 1,1--3 1,2--1 1,2-2 1,3--1 1,4--1 1,4-2 1,4--3您需要SQL Server for MySQL中的行数函数 SELECT @row_number := CASE WHEN @conc_no = conc THEN @row_number + 1 ELSE 1 END AS num, @conc_no :=

如何为MySQL生成此序列?
(注意:对于每个唯一的对,重新生成序列)

1,1--1
1,1--2
1,1--3
1,2--1
1,2-2
1,3--1
1,4--1
1,4-2

1,4--3

您需要SQL Server for MySQL中的
行数
函数

SELECT
  @row_number := CASE
    WHEN @conc_no = conc THEN
    @row_number + 1
    ELSE
    1
    END AS num,
  @conc_no := mydata.conc AS conc
FROM
  (
    SELECT
      CONCAT(num1, ",", num2) AS conc
    FROM
      table1
    ORDER BY
      num1 ASC, num2 ASC
    ) mydata

Fiddle:

您需要SQL Server for MySQL中的
行号
函数

SELECT
  @row_number := CASE
    WHEN @conc_no = conc THEN
    @row_number + 1
    ELSE
    1
    END AS num,
  @conc_no := mydata.conc AS conc
FROM
  (
    SELECT
      CONCAT(num1, ",", num2) AS conc
    FROM
      table1
    ORDER BY
      num1 ASC, num2 ASC
    ) mydata

Fiddle:

您需要SQL Server for MySQL中的
行号
函数

SELECT
  @row_number := CASE
    WHEN @conc_no = conc THEN
    @row_number + 1
    ELSE
    1
    END AS num,
  @conc_no := mydata.conc AS conc
FROM
  (
    SELECT
      CONCAT(num1, ",", num2) AS conc
    FROM
      table1
    ORDER BY
      num1 ASC, num2 ASC
    ) mydata

Fiddle:

您需要SQL Server for MySQL中的
行号
函数

SELECT
  @row_number := CASE
    WHEN @conc_no = conc THEN
    @row_number + 1
    ELSE
    1
    END AS num,
  @conc_no := mydata.conc AS conc
FROM
  (
    SELECT
      CONCAT(num1, ",", num2) AS conc
    FROM
      table1
    ORDER BY
      num1 ASC, num2 ASC
    ) mydata
小提琴:创建一张桌子:-

create table dummy(id varchar(100));    
在表中插入值:-

insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,3');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
运行以下查询:-

select id,@aaaa:=ifnull(seq,@aaaa:=@aaaa+1)as seq from(select y.id,b,seq from (select 
id,@aaa:=@aaa+1 as b from dummy cross join (select @aaa:=0)a) as y  left join 
(select id,a,@aa:=@aa as seq from  (select * from (select id,@a:=@a+1 as a from dummy 
cross join (select @a:=0)a)as b group by id)a cross join (select @aa:=1)as d )
 as x on x.a=y.b) as z cross join  (select @aaaa:=0)a;    
创建一个表:-

create table dummy(id varchar(100));    
在表中插入值:-

insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,3');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
运行以下查询:-

select id,@aaaa:=ifnull(seq,@aaaa:=@aaaa+1)as seq from(select y.id,b,seq from (select 
id,@aaa:=@aaa+1 as b from dummy cross join (select @aaa:=0)a) as y  left join 
(select id,a,@aa:=@aa as seq from  (select * from (select id,@a:=@a+1 as a from dummy 
cross join (select @a:=0)a)as b group by id)a cross join (select @aa:=1)as d )
 as x on x.a=y.b) as z cross join  (select @aaaa:=0)a;    
创建一个表:-

create table dummy(id varchar(100));    
在表中插入值:-

insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,3');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
运行以下查询:-

select id,@aaaa:=ifnull(seq,@aaaa:=@aaaa+1)as seq from(select y.id,b,seq from (select 
id,@aaa:=@aaa+1 as b from dummy cross join (select @aaa:=0)a) as y  left join 
(select id,a,@aa:=@aa as seq from  (select * from (select id,@a:=@a+1 as a from dummy 
cross join (select @a:=0)a)as b group by id)a cross join (select @aa:=1)as d )
 as x on x.a=y.b) as z cross join  (select @aaaa:=0)a;    
创建一个表:-

create table dummy(id varchar(100));    
在表中插入值:-

insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,1');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,2');    
insert into dummy (id) values('1,3');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
insert into dummy (id) values('1,4');    
运行以下查询:-

select id,@aaaa:=ifnull(seq,@aaaa:=@aaaa+1)as seq from(select y.id,b,seq from (select 
id,@aaa:=@aaa+1 as b from dummy cross join (select @aaa:=0)a) as y  left join 
(select id,a,@aa:=@aa as seq from  (select * from (select id,@a:=@a+1 as a from dummy 
cross join (select @a:=0)a)as b group by id)a cross join (select @aa:=1)as d )
 as x on x.a=y.b) as z cross join  (select @aaaa:=0)a;    


我不清楚你需要什么?为了更好地生成序列来编写函数,而不是在技术上使用DBID,在开始之前还需要PK。表已经存在。两个表Category和SubCategory分别有两列Category_id和SubCategory_id。有第三个表规格。现在,每个项目(Cat+Subcat)都有多个规格。现在,假设对于具有类别\u id 1和子类别\u id 1的项目1,有3个规范。第2项有2个,第3项有1个,第4项有3个。在单个查询中,我需要生成此序列。我不清楚您需要什么?为了更好地生成序列来编写函数,而不是在技术上使用DBID,在开始之前还需要PK。表已经存在。两个表Category和SubCategory分别有两列Category_id和SubCategory_id。有第三个表规格。现在,每个项目(Cat+Subcat)都有多个规格。现在,假设对于具有类别\u id 1和子类别\u id 1的项目1,有3个规范。第2项有2个,第3项有1个,第4项有3个。在单个查询中,我需要生成此序列。我不清楚您需要什么?为了更好地生成序列来编写函数,而不是在技术上使用DBID,在开始之前还需要PK。表已经存在。两个表Category和SubCategory分别有两列Category_id和SubCategory_id。有第三个表规格。现在,每个项目(Cat+Subcat)都有多个规格。现在,假设对于具有类别\u id 1和子类别\u id 1的项目1,有3个规范。第2项有2个,第3项有1个,第4项有3个。在单个查询中,我需要生成此序列。我不清楚您需要什么?为了更好地生成序列来编写函数,而不是在技术上使用DBID,在开始之前还需要PK。表已经存在。两个表Category和SubCategory分别有两列Category_id和SubCategory_id。有第三个表规格。现在,每个项目(Cat+Subcat)都有多个规格。现在,假设对于具有类别\u id 1和子类别\u id 1的项目1,有3个规范。第2项有2个,第3项有1个,第4项有3个。在一个查询中,我需要生成这个序列。这很有效!!!非常感谢。但是如果有更多的专栏呢?说三还是四?这行得通吗?@TanmoyGhosh只需
CONCAT
所有你需要的栏目加上一些特殊的标点符号。确保结果字符串对于每个组都是唯一的,这没关系。@TanmoyGhosh不客气,伙计。如果你能接受我的答案,我将不胜感激。@TanmoyGhosh我的意思是通过点击我答案左边的复选标记来“接受”我的答案,伙计。这样我才能赢得声誉(๑´ㅂ`๑)♡*太好了!!!非常感谢。但是如果有更多的列呢?比如说三列或四列?这样行吗?@TanmoyGhosh只需
CONCAT
所有需要的列,并加上一些特殊的标点。确保结果字符串对每个组都是唯一的,这没关系。@TanmoyGhosh不客气,伙计。如果你能接受,我将不胜感激我的答案:)@TanmoyGhosh我的意思是通过点击我答案左边的复选标记来“接受”我的答案,伙计。这样我才能赢得声誉(๑´ㅂ`๑)♡*太好了!!!非常感谢。但是如果有更多的列呢?比如说三列或四列?这样行吗?@TanmoyGhosh只需
CONCAT
所有需要的列,并加上一些特殊的标点。确保结果字符串对每个组都是唯一的,这没关系。@TanmoyGhosh不客气,伙计。如果你能接受,我将不胜感激我的答案:)@TanmoyGhosh我的意思是通过点击我答案左边的复选标记来“接受”我的答案,伙计。这样我才能赢得声誉(๑´ㅂ`๑)♡*太好了!!!非常感谢。但是如果有更多的列呢?比如说三列或四列?这样行吗?@TanmoyGhosh只需
CONCAT
所有需要的列,并加上一些特殊的标点。确保结果字符串对每个组都是唯一的,这没关系。@TanmoyGhosh不客气,伙计。如果你能接受,我将不胜感激我的答案:)@TanmoyGhosh我的意思是通过点击我答案左边的复选标记来“接受”我的答案,伙计。这样我才能赢得声誉(๑´ㅂ`๑)♡*