Posts Tagged ‘MySQL’

Contar caracteres de un campo en MySQL

October 19th, 2011

En ocasiones necesitamos contar los caracteres de un campo vamos a verlo de una forma muy simple:

LENGTH(cadena)
Recibe una cadena y cuenta y devuelve el número de caracteres.

CHARACTER_LENGTH(cadena)
Recibe también una cadena y devuelve el número de caracteres contados.

CHAR_LENGTH(cadena)
Es un sinónimo de CHARACTER_LENGTH. Aunque no lo tienen todas las versiones de MySQL.

La diferencia entre LENGTH y CHARACTER_LENGTH es que en CHARACTER_LENGTH un carácter “multibyte” cuenta como un solo carácter. En LENGTH cuenta el número de bytes de la cadena. Así que en el caso de tener una cadena con 5 caracteres que ocupan 2 bytes cada uno, LENGTH devolvería 10 y CHARACTER_LENGTH sólo 5.

Y la forma de utilizar la instrucción es :

SELECT character_length( ‘campo’ ), campo FROM tabla

Esto nos devolvería un conjunto de registros con el número de caracteres de cada registro y luego otra columna con contenido.

También podemos usarlo en las condiciones:

SELECT campo FROM tabla where CHARACTER_LENGTH(campo)=6

Y en la ordenación:

SELECT CHARACTER_LENGTH(campo) as ‘numcaracteres’, campo FROM tabla ORDER BY CHARACTER_LENGTH(campo)

¿Fácil no ?

Solución error SQL_BIG_SELECTS

March 17th, 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.

» Read more: Solución error SQL_BIG_SELECTS

Reemplazando Cadenas en Tablas de MySQL

June 10th, 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. » Read more: Reemplazando Cadenas en Tablas de MySQL