Autor Tema: MySql Autonumerar o contar registros que cumplen una condición where  (Leído 19480 veces)

EscobarCamilo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
Buenos días a todos: Agredezco de antemano su colaboración.

Tengo una tabla en la que hay registros repetidos (ciudad), y necesito numerarlos así:

nombre                ciudad               No.

Camilo                 Bogotá               1
Andres                Bogotá                2
Gustavo              Medellín              1
Francisco             Bogotá                3
Angela                 Medellín              2

Y que cuando elimine algun registro se actualice esa numeración de la coluimna (No.)

No sé si se hace directamente con php en un array o en mysql en una tabla temporal, la verdad es que estoy aprendiendo hasta ahora esto y es la segunda vez que estoy en el foro y ando bien perdido. Si me pueden colaborar o darme una luz de como hacerlo les agradezco mucho. Un abrazo.
« Última modificación: 28 de Julio 2015, 18:32 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:MySql Autonumerar o contar registros que cumplen una condición where
« Respuesta #1 en: 28 de Julio 2015, 18:34 »
Hola Camilo, si solo necesitas saber el número de registros que cumplen una condición en la base de datos (es decir, saber si hay por ejemplo 17 registros cuya ciudad es Medellín) lo más fácil es usar una consulta count.

Código: [Seleccionar]
SELECT COUNT(*), ciudad FROM usuarios WHERE `ciudad` = "Barcelona"
Nos devolvería el número de registros de la tabla usuarios donde el campo ciudad es Barcelona. El resultado podría ser como este:

COUNT(*)    ciudad
45           Barcelona


Esto significaría que hay 45 registros donde la ciudad es Barcelona.


También tienes opción a realizar una consulta donde cada una de las apariciones de la ciudad quede numerada:


Código: [Seleccionar]
SELECT  l.ciudad,
        @curRow := @curRow + 1 AS row_number
FROM    usuarios l
JOIN    (SELECT @curRow := 0) r
WHERE   l.ciudad = "Barcelona";


El resultado de esta consulta sería parecido a:

 ciudad    row_number
Barcelona    1
Barcelona    2
Barcelona    3
Barcelona    4

Tantas filas como veces aparezca la ciudad buscada.


Si además del nombre de ciudad quieres que aparezca el resto de la información de la tabla puedes usar:

Código: [Seleccionar]
SELECT  l.*,
        @curRow := @curRow + 1 AS row_number
FROM    usuarios l
JOIN    (SELECT @curRow := 0) r
WHERE   l.ciudad = "Barcelona";

En este caso el resultado sería parecido a

nombre                ciudad               row_number

Camilo                Bogotá               1
Andres                Bogotá               2
Francisco             Bogotá               3


Esto puedes combinarlo con una consulta previa para saber cuáles son las ciudades existentes en la base de datos, por ejemplo

Código: [Seleccionar]
SELECT DISTINCT ciudad
FROM usuarios

Te devolvería

Bogotá
Medellín
Cali
etc.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

EscobarCamilo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 11
    • Ver Perfil
Re:MySql Autonumerar o contar registros que cumplen una condición where
« Respuesta #2 en: 28 de Julio 2015, 18:58 »
César, muchas gracias por tu respuesta. Muy completa y efectiva. Esto es lo que necesitaba. Bendiciones. Ya estaba perdiendo las esperanzas.  Graciassssss!! por compartir tu conocimiento......  Funcionó!!!  :)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".