वैरिएबल को एक अलग SET
. में सेट करने के बजाय , क्या आपने CROSS JOIN
. का उपयोग करने का प्रयास किया है? :
$query = "
SELECT `id`,
`rank`,
@num := if(@points = `rank`, @num, @num + 1) as `point_rank`
FROM `said`
CROSS JOIN (SELECT @points:=-1, @num:=0) c
ORDER BY `rank` *1 desc, `id` asc";