我有一个带有子查询的查询,以根据 tune_value 获取每行的排名。如果我尝试获取结果,我会从 PDOStatement::fetchAll(); 中得到一般错误。准备语句的执行似乎没有引发任何错误。
我有以下查询
SET @rank := 0;
SELECT * FROM
(
SELECT *,
(UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(tunes.creation_date)) as age,
@rank := @rank + 1 as rank
FROM tunes
ORDER BY tune_value DESC
) as t
LEFT JOIN artists ON artists.id = t.artists_id
ORDER BY age
我使用以下简化的 php 代码准备语句。
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $pdo->prepare($sql);
$stmt->execute();
$stmt->fetchAll(\PDO::FETCH_ASSOC);
用php做这个子查询是不可能的吗?我在考虑也许可以查看子查询。
编辑:澄清查询在 phpmyadmin 中工作正常