Foros del Web » Programando para Internet » PHP »

Seleccionar registros que contengan un numero especifico en una lista

Estas en el tema de Seleccionar registros que contengan un numero especifico en una lista en el foro de PHP en Foros del Web. Lo que quize decir en el titulo es.. Tengo una tabla con un campo 'DATA', sus valores son siempre numeros separados por comas. EJ: 5555,66666,777777,.... ...
  #1 (permalink)  
Antiguo 06/02/2010, 15:43
Avatar de _eNGeLs_  
Fecha de Ingreso: noviembre-2007
Ubicación: CDE, Paraguay
Mensajes: 278
Antigüedad: 16 años, 5 meses
Puntos: 4
Pregunta Seleccionar registros que contengan un numero especifico en una lista

Lo que quize decir en el titulo es..
Tengo una tabla con un campo 'DATA', sus valores son siempre numeros separados por comas. EJ: 5555,66666,777777,....
Y necesito seleccionar los registros que por Ej contengan '66666'

Preferiria no tener que seleccionar todos y buscar registro por registro si el campo contiene los numeros q busco

Alguna idea?
__________________

  #2 (permalink)  
Antiguo 06/02/2010, 16:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

intenta desde el SQL: where data like ',?6+,?'

investiga sobre las expresiones regulares
  #3 (permalink)  
Antiguo 06/02/2010, 16:58
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

Hola,

Directamente no se como hacerlo pero recuperando todos los registros podria ser algo así:

<?php
$sql="select * from mi_tabla";
$query=mysql_query($sql);
$str="6666666";

While($row=mysql_fetch_array($query){

if(strpos($row['campo'],$str))
echo $row['campo'];

}
?>

Saludos
  #4 (permalink)  
Antiguo 06/02/2010, 17:00
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

Perdón maycolalvarez, estaba editando y no ví tu respuesta.
  #5 (permalink)  
Antiguo 06/02/2010, 17:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

Código MySQL:
Ver original
  1. FROM mi_tabla
  2. WHERE `DATA` LIKE '%6666666%';
Esa sería la sentencia para que devolviese todo lo que seguro contenga "6666666". Si tiene menos, elimina algún "6" o deja uno sólo y listo.

Tip final: Cuidado con las palabras reservadas en SQL. DATA es una palabra reservada y debe ir entre acentos agudos (`) para evitar que se tome como un error de sintaxis.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 06/02/2010, 18:08
Avatar de _eNGeLs_  
Fecha de Ingreso: noviembre-2007
Ubicación: CDE, Paraguay
Mensajes: 278
Antigüedad: 16 años, 5 meses
Puntos: 4
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

Gracias por las respuestas!

@santris:
El problema de hacerlo de esa forma es que teniendo miles de registros creo consumira demaciados recursos y si hubiese una manera de hacerlo mas directamente con el lenguage mysql creo seria mas eficiente

@gnzsoloyo:
De esa forma funciona, siempre y cuando los datos en el campo sean Ej 5555,6666,7777,... es mi culpa, no especifique bien en el primer post.
Olvide aclarar que los numeros son aleatorios, es decir pueden ir del 1 al 9999999999999.... y creo que el metodo que dices me devolvera positivo buscando un 6 en 66 y 66664 etc..
o me equivoco?
(Gracias por el tip)

@maycolalvarez:
Expresiones regularesssss.. creo q finalmente voy a tener que aprendermelass
Gracias!

[Mas respuestas, ideas son siempre bienvenidas ]
__________________

  #7 (permalink)  
Antiguo 06/02/2010, 18:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar registros que contengan un numero especifico en una lista

Entonces pon lo que quieras buscar dentro de esa cadena, suplantando el número que yo puse. El principio de funcionamiento es simple: cualquier texto antes y después de la cadena buscada...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, search
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 23:42.