Foros del Web » Programando para Internet » PHP »

Buscar repetidos

Estas en el tema de Buscar repetidos en el foro de PHP en Foros del Web. Tengo una tabla con varios campos, entre ellos id y ref. id es autonumérico ref es numerico y puede ser repetido ¿Como puedo hacer una ...
  #1 (permalink)  
Antiguo 25/06/2002, 11:15
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Buscar repetidos

Tengo una tabla con varios campos, entre ellos id y ref.
id es autonumérico
ref es numerico y puede ser repetido

¿Como puedo hacer una consulta que me devuelva sólo los registros que tengan el campo ref igual a otro registro de la tabla?

Ejemplo:
Con la tabla...

ID REF
1 12
2 13
3 12
4 14
5 15
6 12
7 13
8 16
9 17

Necesito que me devuelva los registros...
1,12
2,13
3,12
6,12
7,13


Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #2 (permalink)  
Antiguo 25/06/2002, 19:39
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Buscar repetidos

Hola Cain
//Suponiendo que la tabla se llame users
$sql=&quot;SELECT u.id, u.ref FROM users u, users o WHERE u.ref=o.ref and u.id&lt;&gt;o.id&quot;;
$result=mysql_query($sql,$link);
while($row = mysql_fetch_array($result)) {
echo &quot;$row[0] $row[1] &lt;br&gt;&quot;;
}

Lo que haces es crear alias de la tabla (user u, user o) para poder compararla con ella misma( u.ref=o.ref )y despues eliminamos las repeticiones (u.id&lt;&gt;o.id).
Seleccionamos los campos de uno de los alias(u.id, u.ref )
Mas que de PHP esta era de SQL :)
Besitos Romi
  #3 (permalink)  
Antiguo 26/06/2002, 04:04
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Buscar repetidos

Al final lo solucioné con una consulta SQL muy acurada.
select ref,count(*) from tabla group by ref having count(*) &gt; 1
:P

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #4 (permalink)  
Antiguo 26/06/2002, 10:17
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
Re: Buscar repetidos

Ehh.. muy buena esa también. No se me había ocurrido.
Estaba por darte la misma respuesta que Romina, pero me ha gustado esa también. Ahora habría que ver cuál de las dos consume menos recursos de al ejecutarse.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #5 (permalink)  
Antiguo 26/06/2002, 10:59
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Buscar repetidos

La opción de comparar las tablas con aliases me congela el mySQL-FRONT :(
La consulta del mensaje que he posteado antes me funciona bien y rápido con PHP.
Pensad que la tabla tiene mas de 100.000 registros

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #6 (permalink)  
Antiguo 26/06/2002, 17:46
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Buscar repetidos

Muy buena la que encontraste Cain, habia probado algo asi pero no me salia.
Buenisima.
Besos Romi
  #7 (permalink)  
Antiguo 26/06/2002, 18:08
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
Re: Buscar repetidos

aunque vale la pena aclarar que funciona cuando solo hay un duplicado solo (1 original y 1 duplicado). Si en cambio hubieran 1 original y + de 1 duplicado, habria que correr la Sentencia varias veces para borrar los duplicados (claro, si lo que se desea es borrar. <img src='images/tongue.gif' width=15 height=15 align=middle>)

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #8 (permalink)  
Antiguo 26/06/2002, 18:11
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Buscar repetidos

Tambien que pediste que muestre:
1,12
2,13
3,12
6,12
7,13

y lo que hace el tuyo es mostrar:
12,3
13,2

Besos Romi
  #9 (permalink)  
Antiguo 27/06/2002, 04:35
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Buscar repetidos

Lo que hago es hacer dos consultas.
La primera me devuelve la referencia repetida y el numero de repeticiones.
Con este creo una lista de referencias que luego uso para hacer la consulta general.
SELECT * FROM tabla WHERE ref in ($lista)

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
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 00:12.