elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 03:51  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos
| | | |-+  Menos de x coincidencias
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Menos de x coincidencias  (Leído 1,059 veces)
XafiloX

Desconectado Desconectado

Mensajes: 128


Ver Perfil
Menos de x coincidencias
« en: 30 Julio 2010, 16:39 »

Hola a todos! Me gustaria saber si con una sentencia mysql se puede conseguir lo siguiente:

Tengo una tabla con dos columnas (entre otras): campo1 y campo2. Y quiero una query que me devuelva campo1 y campo2 en los cuales el numero de campo1 y campo2 iguales (ambos tienen que ser iguales) sea menor de 3 y mayor de 0.

Un ejemplo
Campo1Campo2Otros
115
024
027
258
520
250
252

Esto me deberia devolver dos resultados:
-Campo1=0 y campo2=2
-Campo1=2 y campo2=5


La verdad, no tengo ni idea de si se puede hacer. Pero si fuese posible me solucionaria un gran problema, ya que sino tendria que coger con una query toda la base de datos y luego con otro lenguaje ir procensandolo hasta en contrar las coincidencias, lo cual seria lento...

Os agradeceria cualquier ayuda!


« Última modificación: 30 Julio 2010, 18:43 por XafiloX » En línea
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Menos de x coincidencias
« Respuesta #1 en: 30 Julio 2010, 16:44 »

Código
SELECT * FROM tabla
WHERE Campo1=Campo2 AND Campo1>0 AND campo1<3

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

XafiloX

Desconectado Desconectado

Mensajes: 128


Ver Perfil
Re: Menos de x coincidencias
« Respuesta #2 en: 30 Julio 2010, 18:39 »

Hola, gracias por responder! No era eso a lo que me referia...

Lo que quiero es que me devuelva el campo1 y campo2  de aquellas filas en las que haya más de 0 y menos de 3 filas con campos iguales...Es decir, en el ejemplo anterior (que lo he cambiado para que se entienda mejor), se devolverian:
-Campo1=0 y campo2=2
-Campo1=2 y campo2=5
porque -Campo1=0 y campo2=2 se da en dos filas (más de 0 veces y menos de 3 veces) y -Campo1=2 y campo2=5 se da en 3 filas...

Es complicado de explicar... :xD
En línea
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Menos de x coincidencias
« Respuesta #3 en: 30 Julio 2010, 20:31 »

Lo acabo de inventar y no tengo donde probar, así que puede que funcione, como que puede que no :xD

Código
SELECT campo1, Campo2, COUNT(*) AS total
FROM tabla
WHERE campo1 = campo2
GROUP BY campo1
HAVING total > 0 AND total < 3

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

seba123neo


Desconectado Desconectado

Mensajes: 3.213



Ver Perfil WWW
Re: Menos de x coincidencias
« Respuesta #4 en: 31 Julio 2010, 07:06 »

tuve que releer 50 veces el post para entender lo que queres, y sin embargo me quedan dudas  :xD

novlucker te entendio igual que yo al leer tu primer post, donde dijiste que campo1 y campo2 deben ser iguales, pero cuando explicas los resultados, no son iguales campo1 y campo2

si decis:

-Campo1=0 y campo2=2
-Campo1=2 y campo2=5

ahi campo 1 vale 0 y el otro vale 2 , no son iguales...lo que vos queres creo entender es listar simplemente los repetidos, que se repitan entre 0 y 3 veces, pero que los valores no sean iguales...sino el unico que cumpliria con esa condicion seria el primer registro, donde ambos son 1...me explico?

mira el select que te paso novlucker, esta bien salvo que tenes que cambiar los alias del having ya que no se pueden usar alias ahi. y sacale el "WHERE campo1 = campo2" , tambien agrega el campo2 al Group By, sino te tira error, ya que estas usando COUNT(*) arriba y debes agrupar por todo.

quedaria asi:

Código
SELECT campo1, Campo2, COUNT(*) AS total
FROM tabla1
GROUP BY campo1, campo2
HAVING COUNT(*) > 0 AND COUNT(*) < 3
ORDER BY COUNT(*) DESC

ahi te devuelve:

Campo 1          Campo2         Total Repetidas
0                      2                         2
5                      2                         1
1                      1                         1

en todo caso fijate que el ultmo registro tambien entra en la condicion, ya que se repite 1 vez y eso es mayor a 0 y menor a 3...

la ultima linea del select que le agrege simplemente ordena del mayor repetido al menor...


EDITO: revisando tampoco entraria en la lista ese que vos decis que se repite 3 veces ya que vos queres que sea menor a 3 y no igual a 3...si queres que entre la cantidad 3 simplemente cambia y pone "AND COUNT(*) <= 3"

saludos.
« Última modificación: 31 Julio 2010, 07:10 por seba123neo » En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
XafiloX

Desconectado Desconectado

Mensajes: 128


Ver Perfil
Re: Menos de x coincidencias
« Respuesta #5 en: 1 Agosto 2010, 20:51 »

Ufff, ¡¡muchisimas gracias a los dos!!

Siento haberme explicado tan mal  :-[

Os agradezco mucho la ayuda. Se ve que estoy muy mal en mysql, tendré que buscarme algún manual, ya que lo unico que se son consultas sencillitas y joins...
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[BATCH] Findstr, ¿Como repetir coincidencias?
Scripting
EleKtro H@cker 0 161 Último mensaje 17 Marzo 2012, 06:37
por EleKtro H@cker
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines