$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.'%")');