Mysql
 sql >> база данни >  >> RDS >> Mysql

Искате номер на ред в група колони в МОЯТА SQL?

Тази дефиниция на таблицата ще постигне това, което искате.

CREATE TABLE  `test` (
  `Id` int(10) unsigned NOT NULL,
  `Name` varchar(45) NOT NULL,
  `RowNum` int(10) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`Id`,`Name`,`RowNum`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Попълване на таблицата с данни

INSERT INTO test VALUES
(1,"test",null),
(1,"test",null),
(1,"test123",null),
(2,"test222",null),
(3,"test333",null);

Изберете данни от таблица

SELECT * FROM test;

Резултат

1, 'test', 1
1, 'test', 2
1, 'test123', 1
2, 'test222', 1
3, 'test333', 1

За да го направите в заявка, тук е доста груб начин да го направите.

select g.id,g.name,g.rownum 
from (
    select t.id,t.name,
        @running:=if(@previous=concat(t.id,t.name),@running,0) + 1 as rownum,
        @previous:=concat(t.id,t.name) 
    from test t
    order by concat(t.id,t.name) 
) g;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqlworkbench дава грешка във версията при експортиране на база данни

  2. mysql_real_escape_string() и mysql_escape_string() достатъчни ли са за сигурността на приложението?

  3. MySQL:как да получите x брой резултати на групиране

  4. Свържете се с MySQL на AWS от локална машина

  5. mySQL множествена заявка - връща грешка mysql_fetch_array