SQL_CALC_FOUND_ROWS有时无法正常工作

时间:2014-02-23 10:33:29

标签: mysql joomla sql-like sql-calc-found-rows

$query->select('SQL_CALC_FOUND_ROWS i.title,i.fulltext,i.shorttext');
        $query->from('#__items as i');
$query->where('i.shorttext LIKE "%'.$word.'%");

有了这个条件,一切都是正确的,行的数量是真实的...例如,如果它返回21个项目......它是真实的......(实际返回的结果是21)

但在此代码中:

 $query->select('SQL_CALC_FOUND_ROWS i.title,i.fulltext,i.shorttext');
            $query->from('#__items as i');
$query->where('i.shorttext LIKE "%'.$word.'%" 
            OR i.fulltext LIKE "%'.$word.'%" 
            OR i.title LIKE "%'.$word.'%"');

代码返回给我的行数63! (真正的3倍。)

当然,他们都打印实时(不是公开)。

有什么不对? TNX


我改为此(在三个or条件附近添加了括号)并解决了问题。

 $query->select('SQL_CALC_FOUND_ROWS i.title,i.fulltext,i.shorttext');
            $query->from('#__items as i');
$query->where('(i.shorttext LIKE "%'.$word.'%" 
            OR i.fulltext LIKE "%'.$word.'%" 
            OR i.title LIKE "%'.$word.'%")');

1 个答案:

答案 0 :(得分:0)

代码返回63,因为您的查询返回63行(或者您之后在PHP中更改了变量)。

这是正确的结果,或者您提取错误的数字。目前,MySQL没有任何魔力。

相关问题