我无法限制从select语句中获取的行数。这就是我正在使用的:
SELECT
*
FROM
Card
WHERE
card_cla_id = 6
AND card_set_id > 5
ORDER BY
card_cost,
card_name DESC
OFFSET $newCardCount ROWS
FETCH NEXT 8 ROWS ONLY
我之前设置了$newCardCount
。
当我尝试运行此代码时,我得到:
警告:mysqli_num_rows()期望参数1为mysqli_result,boolean given
这让我觉得我的SQL语句有问题,但我没有看到它有什么问题。
答案 0 :(得分:0)
在MySQL中,这是我们限制检索行的方式:
SELECT *
FROM Card
WHERE card_cla_id = 6
AND card_set_id > 5
ORDER BY card_cost, card_name DESC
LIMIT $newCardOffset, $newCardCount;
你需要传递两个变量而不是一个变量,第一个变量是第一个记录的偏移量,相对于第一个记录的偏移量为0,第二个变量是针对多少记录的计数检索。例如LIMIT 5, 10
将检索记录6-15。
如果您的$newCardCount
变量实际上是偏移量(尽管名称),并且您希望每次检索8条记录,那么您可以使用:
LIMIT $newCardCount, 8;
但是在这种情况下,我建议您更改变量的名称,因为它会像这样混淆。