Archivado en: ‘Bases de Datos’ .

Solución error SQL_BIG_SELECTS

17 marzo, 2010

El problema viene porque estas cargando una consulta que MySqL considera que puede ser grande ó se hacen bastantes relaciones entre las tablas.

The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay

Ese error es debido a la variable de MySQL SQL_BIG_SELECTS, y en el mensaje mismo te indica la respuesta:

SELECT examinará más de MAX_JOIN_SIZE filas, revisa tu WHERE y usa SET SQL_BIG_SELECTS = 1 o SET SQL_MAX_JOIN_SIZE = # si el SELECT está bien.

» Leer más: Solución error SQL_BIG_SELECTS

Clausula LIMIT en Access, SQL, MySQL y ORACLE

8 marzo, 2010

Para limitar el número de registros que debe devolver una consulta podemos utilizar:

Para Access y MS SQL utilizaremos TOP n de esa forma obtendremos los n primeros resultados de la búsqueda, y si nos interesa son los n últimos, utilizaremos la cláusula ORDER BY

SQL:
  1. SELECT TOP n ... FROM ...
  2. WHERE ...
  3. ORDER BY...

Para MySQL utilizaremos LIMIT n , que ademas permite el compaginado agregando al final de un SELECTla clausula "LIMIT".
MySQL - LIMIT n

MySQL:
  1. SELECT ... FROM ...
  2. WHERE ...
  3. LIMIT n, n

Para ver cinco registros a partir del registro 10:

SQL:
  1. SELECT * FROM tabla LIMIT 10,5

ORACLE genera una variable, tal y como si fuera un campo más de cada registro de la tabla, llamada “rownum”, la cual se incrementa por cada registro que vamos recuperando. De esta manera, sólo tenemos que acceder a esta variable y controlar que no sobrepasa el número que nos hemos propuesto como límite.

ORACLE8:
  1. SELECT campos
  2. FROM TABLE
  3. WHERE condicion
  4. AND ROWNUM <= 2

Reemplazando Cadenas en Tablas de MySQL

10 junio, 2009

Si necesitas reemplazar un mismo texto en varios registros en MySQL puedes hacerlo de la siguiente manera.

MySQL:
  1. UPDATE la_tabla
  2.  SET el_campo =
  3.  REPLACE (el_campo,’texto_antiguo’,texto_nuevo’)

Esta forma es la ideal para realizar cambios de forma masiva. » Leer más: Reemplazando Cadenas en Tablas de MySQL