Actualizar todos los valores de una columna a minúsculas


100

Digamos que tengo algo como esto

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

¿Cómo puedo actualizar todos los valores en la columna "etiqueta" a:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

usando MySQL?

Respuestas:


243

3
Tenga en cuenta que esto no funciona bien cuando su base de datos utiliza una coincidencia que no distingue entre mayúsculas y minúsculas.
EsmeraldaD.

¿Cómo funcionará esto con las direcciones de correo electrónico? Nombre@dominio.com ¿Cambiará @?
Björn C

2
UPDATE table_name SET tag = BINARY LOWER(tag)para coincidencias que no distinguen entre mayúsculas y minúsculas.
Enyby

2
@ BjörnC - superior / inferior solo cambia letras; todos los demás caracteres no se modifican.
ToolmakerSteve

@Rippo Recibo este error cuando intento esta consultaHINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood

68

INFERIOR()

update table set tag = LOWER(tag)

Recibo este error cuando intento esta consulta SUGERENCIA: Ninguna función coincide con el nombre dado y los tipos de argumento. Es posible que deba agregar conversiones de tipo explícitas.
Luna Lovegood

4

Versión para la coincidencia que no distingue entre mayúsculas y minúsculas e incluye una cláusula "DÓNDE" si no desea actualizar toda la columna:

UPDATE table 
SET tag = LOWER(tag)
WHERE LOWER(tag) != tag
COLLATE Latin1_General_CS_AS

La línea COLLATE hará que funcione si su base de datos utiliza una coincidencia que no distingue entre mayúsculas y minúsculas, como la mía.


Recibo este error cuando intento esta consulta SUGERENCIA: Ninguna función coincide con el nombre dado y los tipos de argumento. Es posible que deba agregar conversiones de tipo explícitas.
Luna Lovegood

3

Prueba esto:

update `table` set `column_name` = LOWER(column_name without quotation)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.