我有这个问题:
$query = "
SET @points := -1;
SET @num := 0;
SELECT `id`,`rank`,
@num := if(@points = `rank`, @num, @num + 1) as `point_rank`
FROM `said`
ORDER BY `rank` *1 desc, `id` asc";
Run Code Online (Sandbox Code Playgroud)
我正在使用来自php的这个查询; 给我这个错误:
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'SET @num:= 0附近使用正确的语法;
如果我在phpmyadmin Sql查询面板中复制并粘贴该代码,它可以正常工作,但是从PHP代码行开始它不起作用,看起来设置Vars时会出现问题.
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";
Run Code Online (Sandbox Code Playgroud)