informatica:bases_de_datos:mysql:snippets
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:bases_de_datos:mysql:snippets [2024/07/12 10:04] – [Modificar valor inicial AUTO_INCREMENT] tempwin | informatica:bases_de_datos:mysql:snippets [2024/09/16 10:33] (actual) – [Búsqueda de valores duplicados] tempwin | ||
|---|---|---|---|
| Línea 20: | Línea 20: | ||
| </ | </ | ||
| + | ===== Agrupar ===== | ||
| + | |||
| + | ==== Agrupar por un valor y concatenar los demás en una columna ==== | ||
| + | |||
| + | Por ejemplo, si tenemos: | ||
| + | |||
| + | ^ servicio_web | ||
| + | | 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 | ||
| + | |||
| + | Usaremos la función [[https:// | ||
| + | |||
| + | <code mysql> | ||
| + | SELECT | ||
| + | email, | ||
| + | GROUP_CONCAT(servicio_web ORDER BY servicio_web ASC SEPARATOR ', ' | ||
| + | FROM mitabla | ||
| + | GROUP BY email | ||
| + | </ | ||
| + | |||
| + | ==== 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 | ||
| + | </ | ||
| + | |||
| + | Nos devolverá los valores de '' | ||
| + | |||
| + | * [[https:// | ||
| ===== Fechas ===== | ===== Fechas ===== | ||
| Línea 230: | Línea 273: | ||
| El cambio durará hasta que finalice la sesión. | El cambio durará hasta que finalice la sesión. | ||
| </ | </ | ||
| - | |||
| Si queremos ver el valor actual de esa variable: | Si queremos ver el valor actual de esa variable: | ||
| Línea 258: | Línea 300: | ||
| UPDATE test SET log = REPLACE(REPLACE(log, | UPDATE test SET log = REPLACE(REPLACE(log, | ||
| </ | </ | ||
| + | |||
| + | ==== Concatenar campos que pueden ser NULL ==== | ||
| + | |||
| + | Si usamos la función '' | ||
| + | |||
| + | <code sql> | ||
| + | SELECT CONCAT_WS(" | ||
| + | FROM tabla | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | CONCAT_WS viene de // | ||
| + | </ | ||
| + | |||
| + | * [[https:// | ||
| ===== Sistema ===== | ===== Sistema ===== | ||
| Línea 314: | Línea 371: | ||
| En las próximas inserciones, | En las próximas inserciones, | ||
| - | ==== Insertar varios registros ==== | + | ==== Insertar varios registros |
| <code mysql> | <code mysql> | ||
| - | INSERT INTO tbl_name | + | INSERT INTO nombre_tabla |
| (a,b,c) | (a,b,c) | ||
| VALUES | VALUES | ||
| Línea 371: | Línea 428: | ||
| DROP TABLE IF EXISTS < | DROP TABLE IF EXISTS < | ||
| </ | </ | ||
| + | |||
| + | ==== Obtener nombre columnas ==== | ||
| + | |||
| + | Para ver el listado de campos de una tabla y su tipo: | ||
| + | |||
| + | <code mysql> | ||
| + | DESCRIBE < | ||
| + | </ | ||
| + | |||
| + | Si queremos obtener el listado de campos separados por coma: | ||
| + | |||
| + | <code mysql> | ||
| + | -- Aumentamos la longitud máxima de ' | ||
| + | -- Esto solo se mantiene durante la sesión | ||
| + | SET SESSION group_concat_max_len = 1000000; | ||
| + | |||
| + | SELECT group_concat(COLUMN_NAME) | ||
| + | FROM INFORMATION_SCHEMA.COLUMNS | ||
| + | WHERE TABLE_SCHEMA = '< | ||
| + | AND TABLE_NAME = '< | ||
| + | </ | ||
| + | |||
| + | * [[https:// | ||
| ===== Administración ===== | ===== Administración ===== | ||
informatica/bases_de_datos/mysql/snippets.1720771494.txt.gz · Última modificación: por tempwin
