MySQL - No repetir un valor, pero si repetir varios en la misma columna

 
Vista:

No repetir un valor, pero si repetir varios en la misma columna

Publicado por Pablo S (1 intervención) el 07/09/2023 18:12:41
Buenos dias, como puedo cargar una tabla en mysql, para que un campo pueda tener un valor que no se repita, pero otros valores que si puedan repetirse. Por ejemplo cargo una tabla de jugadores de un equipo. De los cuales uno será el capitán. Por lo tanto en el campo capitán, un registro tendrá el valor Si, y todos los demás registros el valor No. Entonces solo debería dejarme cargar un solo registro con el valor Si.
Desde ya muchas gracias.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No repetir un valor, pero si repetir varios en la misma columna

Publicado por SuperIndio (79 intervenciones) el 08/09/2023 17:26:20
Bueno no creo que se pueda mdiante deficiciones o declaraciones al momento de definir y create la tabla
de manera que lo que creo la solucion debe aborala desde afuera mediante codigo
hacer un
1
Select count(*) from table_equipo where col_capitan = 'SI';
si el count(*) es IGUAL que 0 entonces puede Insertar
si el count(*) es MAYOR que 0 entonces NO se puede Insertar

o tambien se me ocurre la podria hacer un trigger AL INSERT y otro trigger al UPDATE
en el cual
tomar el new.col_capitan y :
1
2
3
4
5
6
IF col_capitan = 'SI'
      WCANT = select count(*) from table_equipo where col_capitan = 'SI';
      IF WCANT = 1
         new.col_capitan = 'NO'
      END;
   END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

No repetir un valor, pero si repetir varios en la misma columna

Publicado por Ivan (37 intervenciones) el 09/09/2023 12:13:23
Hola,

puedes usar la instrucción distinct en las columnas que necesites.

1
SELECT DISTINCT(column_name) FROM your_table_name

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar