我需要在此查询中放置set @rank:=0;
,但是我可以将其放置在哪里?
SELECT @rank:=@rank+1 AS rank, p.* FROM points p
inner join distributor d
on p.distributor_id=d.id_distributor
where p.month='$prev_month'
and d.group='$dist_group'
ORDER BY p.tot_point DESC
我必须在主查询之前使用mysql_query("set @rank:=0;");
,它有效。 但是在另一台服务器中它不起作用。
有什么想法吗?
SELECT @rank:=@rank+1 AS rank, p.* FROM points p, (SELECT @rank:=0) AS dummy
inner join distributor d
on p.distributor_id=d.id_distributor
where p.month='$prev_month'
and d.group='$dist_group'
ORDER BY p.tot_point DESC
基本上只需在FROM points p
后添加, (SELECT @rank:=0) AS dummy
.
我在此查询上的首选布局:
SELECT @rank := @rank + 1 AS rank, p.*
FROM
points AS p
CROSS JOIN
(SELECT @rank:=0) AS dummy
INNER JOIN
distributor AS d
ON p.distributor_id = d.id_distributor
WHERE p.month = '$prev_month'
AND d.group='$dist_group'
ORDER BY p.tot_point DESC ;