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;
演示: