mysql插件+;选择行id

mysql插件+;选择行id,mysql,sql,Mysql,Sql,假设我有两张桌子: create table ladder ( user_id INT UNSIGNED NOT NULL PRIMARY KEY , rank INT UNSIGNED NOT NULL UNIQUE ); create table myuser ( user_id INT UNSIGNED NOT NULL PRIMARY KEY , rating INT UNSIGNED NOT NULL ); myuser由评级组

假设我有两张桌子:

create table ladder (
      user_id INT UNSIGNED NOT NULL PRIMARY KEY
     , rank INT UNSIGNED NOT NULL UNIQUE
     );

create table myuser (
      user_id INT UNSIGNED NOT NULL PRIMARY KEY
     , rating INT UNSIGNED NOT NULL
);
myuser由评级组成,评级越高表示用户越好。 阶梯是排名表,排名范围为1、2、3、4、5。。。哪里 秩=1的用户id具有最高评级

好的,当我插入并选择时:

DELETE FROM ladder;  -- clean the table first
INSERT INTO ladder (user_id, rank) SELECT user_id, XXX FROM myuser ORDER BY rating;
然后我需要类似XXX的东西来表示SELECT myuser的行id, 因此XXX=1表示第一行,2表示第二行

这可能吗

(or XXX = 0 for the first row, and i will do XXX+1 in select)

MySQL
中没有这样的
ROW\u NUM
。运行
SELECT
语句并使用时生成它

示例

INSERT INTO ladder (user_id, rank) 
  SELECT 
    user_id, @r:=(@r + 1 ) 
  FROM 
    myuser,
    ( SELECT @r:=0 ) 
  ORDER BY rating;
演示