| |||
Respuesta: SELECT sin repetidos. Cita:
Iniciado por gnzsoloyo Todo es posible, pero sin conocer cómo es la sentencia, o a qué le estás llamando "datos repetidos", es una pregunta abstracta. Con tan poca información no es seguro cómo ayudarte. El detalle de "a qué le llamas" es porque es muy usual que en los JOIN exista repetición de algunos valores de algunas columnas, cuando existe una relación 1:N entre dos tablas, pero eso no implica repetición de datos, en tanto el resto de los valores no se repita. Los registros no se evalúan como iguales si se repiten algunos valores de algunas columnas. Son repetidos cuando todos los valores de todas las columnas se repiten entre dos o más registros. Datos: tengo Mysql 5.5.16 en mi Wamp server y trabajo con el Motor de almacenamiento InnoDB. Me sucede que la última fila de una tabla mysql(o todas) se me se repite dos veces, una de ellas oculta. Es lo que me parece sucede y quisiera saber cómo solucionarlo. Más: tengo una tabla mysql con 526 filas(entrada de 5 números cada una), luego inserto otra fila con código php, reviso phpmyadmin y todo bien.... Creo un programa para analizar repeticiones de números en la tabla mysql, el mismo hace dos tablas, una con la anterior data y otra con la nueva y sucede q al fijarme en todos los números, los últimos que ingresé aparecen corridos dos lugares en la segunda tabla(en ves de un lugar), como si fueran leídos doble. Les comento q *el código php lo probé por mi cuenta con otros datos y funciona bien..[/B] Acá subí la imagen http://tinypic.com/r/2elxtva/6 En verde mi último registro. Sin verde la tabla nueva. Me he dado cuenta que no hay repeticiones impares(Abajo en rojo, q son las repeticiones de cada número), parece que recibo todos los registros dobles desde Mysql.... Cuando veo la tabla mysql desde phpmyadmin todo se ve bien. |
| ||||
Respuesta: SELECT sin repetidos. La verdad, no se entiende mucho lo que planteas, porque la imagen en sí tampoco se entiende. No sé qué es o qué pretende representar. de lo que si estoy totalmente seguro es que esa tabla no es resultado de una consulta en SQL, porque una tabl a resultado no puede tener diferentes cantidades de registros por cada columna... Cita: Esto me lleva a inferir que la tabla cuya imagen estás linkeando no es una tabla de MySQL, sino que la obtienes a través de programación. En ese caso, lo mas probable (considerando que en la base está OK) es que haya un error de programación, pero eso es OFF-TOPIC en este foro.Cuando veo la tabla mysql desde phpmyadmin todo se ve bien. La única duda es si el problema se originará en una consulta mal hecha (que no estás posteando), o bien solamente en la programación. Mi sugerencia: 1) Postea las consultas en SQL que haces. No postees código que no sea SQL. 2) Explica con más claridad qué representa esa tabla y con qué datos se supone que la obtienes.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: SELECT sin repetidos. Cita: Si lees bien donde dice: Más... Ahí esta bien explicado.. Y abajo, lo que representa cada celda de la tabla(con eso+algo de lógica mirando las tablas, creo se puede entender). En mi código php no hay error porque lo he probado con datos puestos por mi en un array, y se logran números impares en las celdas rojas, y los saltos en la segunda tabla son de un lugar y no de a dos..... Para q entiendas mejor fíjate en los números en verde como en la tabla de abajo están corridos dos lugares y sólo hice una entrada con ellos, me disculpas mi lenguaje no técnico.
Iniciado por gnzsoloyo La verdad, no se entiende mucho lo que planteas, porque la imagen en sí tampoco se entiende. No sé qué es o qué pretende representar. de lo que si estoy totalmente seguro es que esa tabla no es resultado de una consulta en SQL, porque una tabl a resultado no puede tener diferentes cantidades de registros por cada columna... Esto me lleva a inferir que la tabla cuya imagen estás linkeando no es una tabla de MySQL, sino que la obtienes a través de programación. En ese caso, lo mas probable (considerando que en la base está OK) es que haya un error de programación, pero eso es OFF-TOPIC en este foro. La única duda es si el problema se originará en una consulta mal hecha (que no estás posteando), o bien solamente en la programación. Mi sugerencia: 1) Postea las consultas en SQL que haces. No postees código que no sea SQL. 2) Explica con más claridad qué representa esa tabla y con qué datos se supone que la obtienes. Acá la consulta. $buscar = "SELECT jugadas.uno,jugadas.dos,jugadas.tres,jugadas.cuatr o,jugadas.cinco FROM jugadas ORDER BY jugadas.jugadaid"; Última edición por alex760125; 15/10/2012 a las 10:45 |
| ||||
Respuesta: SELECT sin repetidos. Vamos a ver si se entienden mis observaciones: 1) Insercion de datos: Cita: O sea que no hay fallos en los INSERT, ni problemas aparentes de ordenamiento.tengo una tabla mysql con 526 filas(entrada de 5 números cada una), luego inserto otra fila con código php, reviso phpmyadmin y todo bien.... 2) Visualización: Cita: Si el programa ordena la tabla visualmente, entonces el problema no está en la consulta, sino en la forma de generarse la vista en pantalla.Creo un programa para analizar repeticiones de números en la tabla mysql, el mismo hace dos tablas, una con la anterior data y otra con la nueva y sucede q al fijarme en todos los números, los últimos que ingresé aparecen corridos dos lugares en la segunda tabla(en ves de un lugar), como si fueran leídos doble. 3) Datos en la base: Cita: Confirma que no hay errores en la base de datos, ni en los datos almacenados. Cuando veo la tabla mysql desde phpmyadmin todo se ve bien. 4) Consulta en SQL:
Código MySQL:
La consulta es correcta, pero salta a la vista que devuelve sólo cinco columnas, por lo que si la comparo con la imagen:Ver original no es igual, ya que en ella hay veintiuno (21) en un caso y veinte (20) en el otro. De esto deduzco que: 1) La vista no representa la consulta, sino un ordenamiento definido en programación. De este ordenamiento no es posible establecer nada, porque la lógica de su algoritmo no resulta deducible a partir de la imagen (traducción: viendo la tabla no se entiende en base a qué se ordena y se agrupa). 2) Hay una discrepancia entre las dos tablas visualizadas, lo que puede generar una distorsión en el ordenamiento de los valores en función de la existencia de una columna más en uno respecto al otro esquema. En esas condiciones: 1) Tu problema no es de SQL, ni de Base de Datos, sino de implementación de la tabla en el programa. Y eso es off-topic. 2) Deberías hacer una prueba de escritorio siguiendo la lógica de generación del esquema visual, para detectar en qué condiciones ese código genera un salto de dos posiciones, cuando debería ser de uno, según dices. En todo caso, creo que en el foro de programación del lenguaje usado pueden ayudarte mejor con eso.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: SELECT sin repetidos. Disculpa que insista en que leas bien. Yo escribí que había revisado mi código php con valores puestos por mi en un array y todo sale correcto, de lo cual deduzco que es problema con Mysql, que cuenta dos veces cada fila. Y mi única pregunta es: Existe alguna orden que le diga a la consulta que no repita el conteo de filas? |
| ||||
Respuesta: SELECT sin repetidos. Te hice objeciones, pero no me refutas ninguna. Se vuelve difícil un intercambio de análisis si no me respondes. En primer lugar: Leí bien, pero tu ejemplo posteado (la imagen), no sirve para visualizar el origen del problema, si es que tiene relación con el SQL. Todo apunta a que no lo tiene. En segundo lugar, si bien existe una forma de indicar que no se muestren registros repetidos, o no se cuenten valores repetidos, tu en la consulta ni estás contando registros, ni estás contando valores. Por ende, tampoco aplica. Lo que yo estoy tratando de hacer es comprender qué datos tiene la tabla que puedan ocasionar estas supuestas"repeticiones" que no se ven en los gráficos posteados. Porque no hay dos líneas consecutivas que tengan los mismos valores en las mismas columnas, que es lo que en BBDD se considera una repetición. Evidentemente no quieres aportar ni los datos concretos, ni tampoco quieres explicar qué estas haciendo, para poder guiarte mejor, y lo que dices no me lo aclara. Te insisto: Por mas que leo (y te aseguro que me dedico precisamente al análisis de BBDD), no veo ni entiendo lo que estás trabajando, por tanto no encuentro qué puede originar tu problema. Y si no se puede determinar qué lo origina, es difícil decirte como evitarlo.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: SELECT sin repetidos. Cita: Qué voy a responderte entonces?
Iniciado por gnzsoloyo Vamos a ver si se entienden mis observaciones: 1) Insercion de datos: O sea que no hay fallos en los INSERT, ni problemas aparentes de ordenamiento. 2) Visualización: Si el programa ordena la tabla visualmente, entonces el problema no está en la consulta, sino en la forma de generarse la vista en pantalla. 3) Datos en la base: Confirma que no hay errores en la base de datos, ni en los datos almacenados. 4) Consulta en SQL:
Código MySQL:
La consulta es correcta, pero salta a la vista que devuelve sólo cinco columnas, por lo que si la comparo con la imagen:Ver original no es igual, ya que en ella hay veintiuno (21) en un caso y veinte (20) en el otro. De esto deduzco que: 1) La vista no representa la consulta, sino un ordenamiento definido en programación. De este ordenamiento no es posible establecer nada, porque la lógica de su algoritmo no resulta deducible a partir de la imagen (traducción: viendo la tabla no se entiende en base a qué se ordena y se agrupa). 2) Hay una discrepancia entre las dos tablas visualizadas, lo que puede generar una distorsión en el ordenamiento de los valores en función de la existencia de una columna más en uno respecto al otro esquema. En esas condiciones: 1) Tu problema no es de SQL, ni de Base de Datos, sino de implementación de la tabla en el programa. Y eso es off-topic. 2) Deberías hacer una prueba de escritorio siguiendo la lógica de generación del esquema visual, para detectar en qué condiciones ese código genera un salto de dos posiciones, cuando debería ser de uno, según dices. En todo caso, creo que en el foro de programación del lenguaje usado pueden ayudarte mejor con eso. En esas condiciones: 2) te la he respondido varias veces, ya hice esa prueba y todo sale bien. Pequeña muestra de la tabla Mysql http://i49.tinypic.com/2hzs5j5.jpg |
| ||||
Respuesta: SELECT sin repetidos. que numero es el que no quieres que se repita , si manejas el id como autoincrementable y como llave primaria no debera repetir algun registro , si lo que buscas es que no se repita algun valor de columna puedes utilizar el distinct y analizar cuales id son los que son repetidos al ser los id omitidos en base al criterio de select , otra forma es por un group by , en cualquiera de los casos son consultas muy simples y estoy seguro mysql no causa error alguno , en el remoto caso en el que se causan algun tipo de redundancia es en joins mal planteados pero al ser aqui una unica tabla no debe darte errores , otra posibilidad es que no estes planteando el fin real de la consulta que quieres , pongamos las cosas desde este punto 1-consulta que no repita valor por columna especifica 2-consulta que obtenga registros con valores identicos entre columnas 3-consulta que tenga un valor especifico relacionado con columna de no ser algun caso asi , como el compañero te lo ha dicho antes es problable que el error que tienes es el procesamiento de los datos por medio de tu programa , el cual supongo esta en php , motivo por el cual quedaria descartado de este apartado y deberias publicar la duda y el codigo de tu programa que genera tu imagen en el apartado correspondiente |
| |||
Respuesta: SELECT sin repetidos. Cita: Ya lo he planteado en PHP, por si quieres verlo. Se llama Problemas con incremento de variables.
Iniciado por fahs82 que numero es el que no quieres que se repita , si manejas el id como autoincrementable y como llave primaria no debera repetir algun registro , si lo que buscas es que no se repita algun valor de columna puedes utilizar el distinct y analizar cuales id son los que son repetidos al ser los id omitidos en base al criterio de select , otra forma es por un group by , en cualquiera de los casos son consultas muy simples y estoy seguro mysql no causa error alguno , en el remoto caso en el que se causan algun tipo de redundancia es en joins mal planteados pero al ser aqui una unica tabla no debe darte errores , otra posibilidad es que no estes planteando el fin real de la consulta que quieres , pongamos las cosas desde este punto 1-consulta que no repita valor por columna especifica 2-consulta que obtenga registros con valores identicos entre columnas 3-consulta que tenga un valor especifico relacionado con columna de no ser algun caso asi , como el compañero te lo ha dicho antes es problable que el error que tienes es el procesamiento de los datos por medio de tu programa , el cual supongo esta en php , motivo por el cual quedaria descartado de este apartado y deberias publicar la duda y el codigo de tu programa que genera tu imagen en el apartado correspondiente |
Etiquetas: |