Joomla数据库 - 如何在getQuery中使用LIMIT?

Tec*_*hie 20 mysql joomla joomla2.5 joomla3.0 joomla3.1

我想使用joomla内置数据库类构建以下查询.

SELECT * 
FROM table_name
ORDER BY id DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止构建的查询.

$db =& JFactory::getDBO();       
$query  = $db->getQuery(true);
$query->select($db->nameQuote('*'));
$query->from($db->nameQuote(TABLE_PREFIX.'table_name'));      
$db->setQuery($query);      
$rows = $db->loadObjectList();
Run Code Online (Sandbox Code Playgroud)

我不知道如何将限制(LIMIT 1)添加到查询中.有人可以告诉我怎么做吗?谢谢

Tec*_*hie 44

比Joomla 3.0更老

$db = JFactory::getDBO();    

$query  = $db->getQuery(true);
$query->select('*')
 ->from($db->nameQuote('#__table_name'))
 ->order($db->nameQuote('id').' desc');     
$db->setQuery($query,0,1);  

$rows = $db->loadObjectList();
Run Code Online (Sandbox Code Playgroud)

$db->setQuery函数需要3个参数.第一个是查询,然后是开始,然后是限制.我们可以限制记录,如上所示.

比Joomla 3.0更新

setLimit(integer $limit, integer $offset)
Run Code Online (Sandbox Code Playgroud)

如果你只想要一排

$query->setLimit(1);
Run Code Online (Sandbox Code Playgroud)

阅读更多

  • 这很奇怪(我会试着找出原因)旧方法适用于J3.3.1,但较新的方法不适用. (3认同)
  • Krzysztof Jarosz - 我也有同样的问题,setLimit()没有使用Joomla 3.3.2. (2认同)