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

Duda clausula WHERE, no se plantearla

Estas en el tema de Duda clausula WHERE, no se plantearla en el foro de Mysql en Foros del Web. Hola compañeros, os pongo en situación... Tengo una tabla con varios campos, aunque lo que me está rompiendo la cabeza, es uno en concreto, un ...
  #1 (permalink)  
Antiguo 13/10/2008, 04:44
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Duda clausula WHERE, no se plantearla

Hola compañeros, os pongo en situación...
Tengo una tabla con varios campos, aunque lo que me está rompiendo la cabeza, es uno en concreto, un campo tipo varchar, que tiene un formato "estandar", es decir, en ese campo, se guardaran datos con este formato:
12,345,10,300,5634, es decir, una serie de números separados por comas (,)
La cuestión es la siguiente, suponiendo que en la tabla ya tengo estos datos (ficticios, pero posibles):

id | valor
1 | 45,89,12
2 | 34,9,89
3 | 0
4 | 2,65,467
5 | 34,89,24
6 | 2,8,3445
7 | 890,3

Lo que quiero hacer, es recuperar los registros que tengan en el campo valor el numero 89 y los que solo tengan un 0 (somo si fuera un valor NULL). Con estos registros, la consulta debería devolver cuatro registros, los correspondientes al id=1, id=2, id=3 e id=5, pero no debe devolver el 7, ya que es 890 y no 89

Yo he probado con SELECT * FROM tabla WHERE valor LIKE '89' evidentemente, no funciona, ya que el campo valor, tiene mas cadenas que 89, luego probe con LIKE '%89%' pero me devuelve el id 7 (890)

En definitiva, no se como crear la consulta, alguna ayuda por favor.
Saludos y gracias, aunque solo sea por leer
  #2 (permalink)  
Antiguo 13/10/2008, 07:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Duda clausula WHERE, no se plantearla

Prueba con expresiones regulares (no lo he probado).
Código sql:
Ver original
  1. SELECT id, valor FROM tutabla WHERE valor REGEXP '[[:<:]]89[[:>:]]' OR valor  REGEXP '[[:<:]]0[[:>:]]'
  #3 (permalink)  
Antiguo 13/10/2008, 08:08
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Duda clausula WHERE, no se plantearla

Excelente!
Solamente he cambiado la igualdad del 0, ya que si es 0, sera siempre 0, es decir, que lo he puesto como igualdad normal (valor = '0')

Gracias por el apunte
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 11:02.