¿Cómo limitar consultas a MySQL a los últimos 50 mil registros?

Desde
22 Ago 2010
Mensajes
6.590
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
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'];
    }
 

Porelian

Beta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
4 Jul 2014
Mensajes
31
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
 

jcdiaz

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Jun 2014
Mensajes
115
El LIMIT deberia funcionar, o un TOP;

-- SELECT TOP 50000 columnas FROM tabla.
 
Arriba