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
f1:mysql-sintaxis [2018/02/20 13:31] lmachucaf1:mysql-sintaxis [2018/10/03 13:22] (actual) lmachuca
Línea 4: Línea 4:
  
 [[https://dev.mysql.com/doc/refman/5.7/en/|Ver también la documentación oficial]]. [[https://dev.mysql.com/doc/refman/5.7/en/|Ver también la documentación oficial]].
 +
 +  * **Ver también [[:SQL]]**.
  
 ===== Búsqueda de Información ===== ===== Búsqueda de Información =====
Línea 52: Línea 54:
   WHERE cli_rut NOT REGEXP '[1-9][0-9]+\-[0-9kK]'   WHERE cli_rut NOT REGEXP '[1-9][0-9]+\-[0-9kK]'
 </code> </code>
 +
 +Explicación del filtro:
 +
 +|  REGEXP     Significado   |
 +| ''[1-9]'' |  Un caracter del grupo dígito del 1 al 9 (para iniciar un número)   |
 +| ''[0-9]'' |  ...seguido de un caracter dígito    |
 +| ''+''      ...al menos una vez   |
 +| ''\-''    |  ...seguido de un caracter guión  |
 +| ''[0-9kK]''  |  ...seguido de un caracter del grupo dígito \\ o del grupo de las letras k y K  |
 +|| https://www.regular-expressions.info/tutorial.html  ||
 +
  
 A veces tener comillas simples o dobles como parte de un campo puede causar errores en bases de datos de MySQL no sanitizadas. Busquemos todos los clientes que tengan comillas dobles en la dirección (cosas como O'Brian, O'Higgins pero mal escritas: ''O"Brian'', ''O"Higgins'', como sucede en la base de datos de Rodeo) y veamos cómo se ven si les cambiamos las comillas simples por comillas tipográficas Unicode ("''%%’%%''"): A veces tener comillas simples o dobles como parte de un campo puede causar errores en bases de datos de MySQL no sanitizadas. Busquemos todos los clientes que tengan comillas dobles en la dirección (cosas como O'Brian, O'Higgins pero mal escritas: ''O"Brian'', ''O"Higgins'', como sucede en la base de datos de Rodeo) y veamos cómo se ven si les cambiamos las comillas simples por comillas tipográficas Unicode ("''%%’%%''"):
 <code mysql> <code mysql>
   SELECT cli_id, cli_rut, cli_direccion as nombre_antes, replace(cli_direccion, '"', '’') as nombre_despues FROM mae_clientes   SELECT cli_id, cli_rut, cli_direccion as nombre_antes, replace(cli_direccion, '"', '’') as nombre_despues FROM mae_clientes
 +  WHERE cli_direccion LIKE '%"%'
 +</code>
 +
 +
 +===== Actualizaciones (UPDATE) =====
 +
 +<code mysql>
 +  UPDATE tablas SET cambios
 +  WHERE (condicion1 [AND/OR] condicion2 [AND/OR]...)
 +  ;
 +
 +</code>
 +
 +En la consulta:
 +
 +  * ''tablas'' es la lista de tablas que se desea modificar. Se coloca más de una tabla cuando el WHERE depende de un JOIN por ejemplo.
 +  * ''cambios'' es la lista de cambios que se desea aplicar, de la forma ''campo = valor, ...'' o ''campo = formula(...), ... ''. Para cambiar campos de más de una tabla se usa el nombre completo del campo por ejemplo ''SET tabla1.campoA = valor, tabla2.campoB = valor, ...''.
 +  * ''condicion1, condicion2'' es una lista opcional de condiciones en el lenguaje lógico de MySQL. Una condición puede ser comparar el valor de un campo, por ejemplo "''WHERE mae_nombre_empresa LIKE '%Lily%' ''".
 +
 +
 +**Ejemplos de búsquedas en bases de datos de Helpcom**
 +
 +Actualizar el nombre de una comuna mal escrita:
 +<code mysql>
 +  UPDATE mae_clientes 
 +  SET cli_comuna = 'LAUTARO' 
 +  WHERE cli_comuna = 'LAITARO'
 +</code>
 +
 +Corregir todos los RUT con "-k" para que tengan mayúsculas:
 +
 +<code mysql>
 +  UPDATE mae_clientes
 +  SET cli_rut = replace(cli_rut, '-k', '-K')
 +</code>
 +
 +Cambiar las comillas normales por comillas tipográficas, siguiendo el ejemplo del SELECT en la sección anterior:
 +
 +<code mysql>
 +  UPDATE mae_clientes
 +  SET cli_direccion= replace(cli_direccion, '"', '’'
   WHERE cli_direccion LIKE '%"%';   WHERE cli_direccion LIKE '%"%';
 </code> </code>
 +
 +Marcar un grupo de folios de nota de crédito DTE como no impresos:
 +
 +<code mysql>
 +  UPDATE dte_folios
 +  SET fol_archivo_generado = 'NO'
 +  WHERE tdo_id = 61 AND fol_numero IN (101, 102, 104, 107, 109)
 +</code>
 +
  
  
f1/mysql-sintaxis.1519133461.txt.gz · Última modificación: 2018/02/20 13:31 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0