PlayerLeagueMySQL的选择数
league_id
player_id
player_position
PlayerStat
player_id
得分
我有两个表,我想更新PlayerLeague,设置player_position相等行数:
SELECT * FROM PlayerStat s JOIN PlayerLeague l
ON s.player_id=l.player_id WHERE l.league_id=3 ORDER BY score DESC;
我试着在我的选择中使用@i,但与连接ORDER BY被忽略。
UPDATE
所以,现在我也这样与它的工作,但我不知道它的正常方式。 它将每小时运行三个联赛40-500名球员。
SET @i=0;
UPDATE PlayerLeague ll set ll.player_position = (SELECT position FROM (SELECT
s.player_id, @i:[email protected]+1 as position
FROM PlayerStat s
where s.player_id in
(SELECT player_id from PlayerLeague l WHERE l.league_id = 3)
ORDER BY score DESC) AS t WHERE t.player_id=ll.player_id);
“但与连接ORDER BY被忽略。” ---它不被忽略。 'ORDER BY'按你传递给它的任何表达式或列来排序 – zerkms
你有多少行l.league_id = 3? – Mihai
Mihai,我有3个联赛,从40到500个球员 –