Como limitar consultas ao MySQL aos últimos 50 mil registros?

  • Autor Autor blogers
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
B

blogers

Pi
SEO
Tengo esta query que biene en un script que me baje pero no logro hacer que el buscador solo lea los ultimos 50 mil debdi a que estoy haciendo pruebas con una bd de 1 millon de registros pero no logro que solo lea los ultimos 50 mil en una consulta por lo que se ahoga mysql al usar el buscador si me ayudaran como delimitar eso ya intente de todo si alguien me hehca una mano

PHP:
function searchTest($where = false, $type = false, $select = false)
    {
        global $config;
        if (!$where)
            return false;
        $sql = "SELECT COUNT(`T1`.`ID`) AS `Count` ";
        $GLOBALS['rlHook']->load('listingsModifyFieldSearch', $sql);
        if ($select) {
            $sql .= $select;
        }
        $sql .= "FROM `" . RL_DBPREFIX . "listings` AS `T1` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "listing_plans` AS `T2` ON `T1`.`Plan_ID` = `T2`.`ID` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "categories` AS `T3` ON `T1`.`Category_ID` = `T3`.`ID` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "accounts` AS `T7` ON `T1`.`Account_ID` = `T7`.`ID` ";
        $GLOBALS['rlHook']->load('listingsModifyJoinSearch', $sql);
        $sql .= "WHERE (UNIX_TIMESTAMP(DATE_ADD(`T1`.`Pay_date`, INTERVAL `T2`.`Listing_period` DAY)) > UNIX_TIMESTAMP(NOW()) OR `T2`.`Listing_period` = 0) ";
        $sql .= "AND `T1`.`Status` = 'active' AND `T3`.`Status` = 'active' AND `T7`.`Status` = 'active' ";
        if ($type) {
            $sql .= "AND `T3`.`Type` = '{$type}' ";
        }
        $sql .= "AND " . $where;
        $GLOBALS['rlHook']->load('listingsModifyWhereSearch', $sql);
        $GLOBALS['rlHook']->load('listingsModifyGroupSearch', $sql);
        $results = $this->getRow($sql);
        if ($select && $results) {
            foreach ($this->keyword_stat as $kk => $lv) {
                if ($results[$kk] || $results[$this->keyword_map[$kk]] || $results['cat_' . $this->keyword_map[$kk]]) {
                    $this->keyword_stat[$kk]++;
                }
            }
        }
        return $results['Count'];
    }
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Usa order by id desc "Limit 50000" un saludo
 
Hola blogers, como te dijo juan25 deberia de funcionar ese agregado. Fijate por las dudas, a mi me paso, que estaba intentando ordenarlo por una numeracion, pero la estructura de esa fila estaba dado por char, por lo tanto no estaba ordenando numericamente sino alfabeticamente. Un saludo
 
El LIMIT deberia funcionar, o un TOP;

-- SELECT TOP 50000 columnas FROM tabla.
 
Voltar
Topo