我试图从表格特定的行范围中获取行。我的查询看起来像这样(只是代码的一部分):
SET @i=0;
SELECT * FROM images WHERE (@i:=@i+1) BETWEEN 1 AND 10;
获取行的行数并返回行,其行号在给定范围内。当我在phpmyadmin中运行此查询时,我可以看到查询的结果(该范围内的实际行),但是查询中的行数是0.我很确定问题出在这个部分
WHERE (@i:=@i+1)
我已经搜索了其他答案,但原因总是在php中,而不是查询本身。
答案 0 :(得分:2)
使用phpMyAdmin时,每个查询都会打开一个新的数据库连接,并且用户变量不会在连接之间保持不变。在您加入的子查询中设置变量:
SELECT i.*
FROM images AS i
CROSS JOIN (SELECT @i := 0) AS x
WHERE (@i := @i + 1) BETWEEN 1 AND 10;