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?

Adam Ramadhan
fuente

Respuestas:

243

Ver http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_lower

UPDATE table_name SET tag = LOWER(tag)
Rippo
fuente
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? [email protected] ¿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)
Shakti Singh
fuente
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.

Susie
fuente
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)
Anjani Barnwal
fuente