在查询中使用LIMIT获取所有结果的数量

3
SELECT `p`.`name`, `f`.*
        FROM `players` `p`, `folks` `f`
        WHERE `p`.`id` = `f`.`guid` 
        AND `f`.`deleted` = 0
        AND `first` = {$id} 
        AND `text` LIKE ?
        LIMIT 10

您可以看到我在这里使用了LIMIT条件。 我需要计算在没有LIMIT条件的情况下将匹配的所有结果。

我尝试使用:FOUND_ROWS();但是我在使用它时遇到了问题,因为它没有返回“所有”结果。


并不是真的:https://dev59.com/T3E95IYBdhLWcg3wI6ft - Isarius
1个回答

3
以下这段代码应该可以胜任 :) 重要的是加上 SQL_CALC_FOUND_ROWS,否则 FOUND_ROWS() 函数将无法正常工作!
SELECT SQL_CALC_FOUND_ROWS `p`.`name`, `f`.*
    FROM `players` `p`, `folks` `f`
    WHERE `p`.`id` = `f`.`guid` 
    AND `f`.`deleted` = 0
    AND `first` = {$id} 
    AND `text` LIKE ?
    LIMIT 10


SELECT FOUND_ROWS();

哦,我现在已经将 SELECT FOUND_ROWS(); 放在了单独的查询变量中,它起作用了。谢谢你,伙计 :)。 - Isarius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,