Herramientas de usuario

Herramientas del sitio


informatica:bases_de_datos:mysql:snippets

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:bases_de_datos:mysql:snippets [2024/08/22 10:59] – [Eliminar saltos de línea] tempwininformatica:bases_de_datos:mysql:snippets [2026/03/27 09:20] (actual) – [Conversiones] tempwin
Línea 20: Línea 20:
 </code> </code>
  
 +===== Agrupar =====
 +
 +==== Agrupar por un valor y concatenar los demás en una columna ====
 +
 +Por ejemplo, si tenemos:
 +
 +^ servicio_web  ^ email      ^
 +| 11111         | mail@mail.com   |
 +| 22222         | mail@mail.com   |
 +| 33333         | mail@mail.com   |
 +| 44444         | mail@mail.com   |
 +
 +Y queremos obtener el siguiente resultado:
 +
 +^ email         ^ servicio_web      ^
 +| mail@mail.com  | 11111, 22222, 33333, 44444  |
 +
 +Usaremos la función [[https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat|GROUP_CONCAT]]:
 +
 +<code mysql>
 +SELECT   
 +    email, 
 +    GROUP_CONCAT(servicio_web ORDER BY servicio_web ASC SEPARATOR ', '
 +FROM mitabla
 +GROUP BY email
 +</code>
 +
 +==== Búsqueda de valores duplicados ====
 +
 +Si queremos ver qué valores están duplicados en cierto campo, podemos hacer la siguiente consulta:
 +
 +<code mysql>
 +SELECT 
 +    campo1, 
 +    COUNT(*) c 
 +FROM mitabla 
 +GROUP BY campo1
 +HAVING c > 1
 +</code>
 +
 +Nos devolverá los valores de ''campo1'' que se repiten (de 1 a más veces)
 +
 +  * [[https://stackoverflow.com/questions/688549/finding-duplicate-values-in-mysql|Finding duplicate values in MySQL]] (Stack Overflow)
 ===== Fechas ===== ===== Fechas =====
  
Línea 81: Línea 124:
   * ''%s'': segundos (de 00 a 59)   * ''%s'': segundos (de 00 a 59)
   * ''%p'': AM o PM.   * ''%p'': AM o PM.
 +
 +Si partimos de un string como ''08/01/2024 8:18'', para pasarlo a formato fecha:
 +
 +<code mysql>
 +SELECT STR_TO_DATE(fecha_creacion_aviso, '%d/%m/%Y %H:%i')
 +</code>
 +
 +  * ''%d'': día del mes con 0 inicial (del 01 al 31)
 +  * ''%m'': número del mes con 0 inicial (del 01 al 12)
 +  * ''%Y'': número del año
  
 [[https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format|Documentación oficial de formateadores de fecha admitidos en MySQL]] [[https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format|Documentación oficial de formateadores de fecha admitidos en MySQL]]
Línea 271: Línea 324:
 </WRAP> </WRAP>
  
 +  * [[https://es.stackoverflow.com/questions/86721/usar-concat-o-concat-ws-en-mysql|¿Usar CONCAT o CONCAT_WS en MySQL?]]
 ===== Sistema ===== ===== Sistema =====
  
informatica/bases_de_datos/mysql/snippets.1724317185.txt.gz · Última modificación: por tempwin