我有这样的疑问:
$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";
我正在使用 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";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)