Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

tamaño máximo cadena where

Estas en el tema de tamaño máximo cadena where en el foro de Mysql en Foros del Web. Hola, si quiero hacer una consulta con una restricción del tipo where, que logintud puedo poner? ejemplo: Código PHP: select  *  from usuario where apellidos = 'mi cadena de texto' ;  ...
  #1 (permalink)  
Antiguo 07/08/2007, 05:54
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
tamaño máximo cadena where

Hola, si quiero hacer una consulta con una restricción del tipo where, que logintud puedo poner?

ejemplo:

Código PHP:
select from usuario where apellidos='mi cadena de texto'
'mi cadena de texto' ¿qué tamaño máximo puede tener?, porque en el campo apellidos de la base de datos puedo meter hasta 100 caracteres, pero a partir de un número determinado de caracteres (no lo sé exactamente) la consulta deja de funcionar (para valores más cortos funciona correctamente). No da error, pero me devuelve 0 tuplas que cumplan la condición cuando realmente si hay una (no tiene ni tildes, ni caracteres raros).

¿Sabe alguien que puede fallar? Muchas gracias
Un saludo.
  #2 (permalink)  
Antiguo 07/08/2007, 09:09
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: tamaño máximo cadena where

El problema no es el tamaño del where, sino el orden y forma en que se estructuró los campos de la tabla.

Si yo se que voy a poner 2 nombres y 2 apellidos, lo más sano y razonable es crear 4 campos: nombre1, nombre2, apellido1, apellido2 y darles un máximo controlado por mi. Por ejemplo, es muy difícil que existan nombres y apellidos mayores a 20, entonces declaro mis campos nombres y apellidos de largo varchar(20). Luego, al realizar un SELECT, va a ser más fácil y eficiente obtener los resultados.

En tu caso, lo que podrías hacer es realizar es una búsqueda no completa ayudandote con un LIKE de esta forma:

Código PHP:
SELECT FROM usuario WHERE apellido LIKE "mi cadena%" 
De esa forma, te va a extraer todo lo que sea igual a "mi cadena" o que tenga al principio "mi cadena" y otros caracteres.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 08/08/2007, 03:00
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: tamaño máximo cadena where

Gracias BrujoNic por contestar, al final el fallo era de como estaba formada la cadena, ya que se me juntaba un caracter % con una d (el % lo usaba como separador) y no se porqué lo mostraba bien en las trazas, pero luego a la hora de la consulta lo interpretaba mal.

Ahora he cambiado el separador % por | y funciona correctamente. De todas formas he cambiado los = del where por un like que me parece más apropiado a la hora de manejar las cadenas.

Gracias por la ayuda.
Un saludo
__________________
Uno para todos y todos para uno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:39.