열의 모든 값을 소문자로 업데이트


100

내가 이런 걸 가지고 있다고하자

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

"태그"열의 모든 값을 다음으로 업데이트하려면 어떻게해야합니까?

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

MySQL을 사용하십니까?

답변:


243

3
데이터베이스가 대 / 소문자를 구분하지 않는 일치를 사용하는 경우 제대로 작동하지 않습니다.
EmeraldD.

이메일 주소와 어떻게 작동합니까? Name@domain.com @이 변경됩니까?
Björn C

2
UPDATE table_name SET tag = BINARY LOWER(tag)대소 문자를 구분하지 않는 일치를 위해.
Enyby

2
@ BjörnC-대 / 소문자 만 문자를 변경합니다. 다른 모든 문자는 변경되지 않습니다.
ToolmakerSteve 2019

나는이 오류가 @Rippo 나는이 쿼리를 할 때HINT: No function matches the given name and argument types. You might need to add explicit type casts.
루나 러브 굿

68

보다 낮은()

update table set tag = LOWER(tag)

이 쿼리를 시도 할 때이 오류가 발생합니다. 힌트 : 주어진 이름 및 인수 유형과 일치하는 함수가 없습니다. 명시 적 유형 캐스트를 추가해야 할 수도 있습니다.
Luna Lovegood

4

전체 열을 업데이트하지 않으려는 경우 대소 문자를 구분하지 않고 "WHERE"절을 포함하는 버전 :

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

COLLATE 라인은 데이터베이스가 대소 문자를 구분하지 않는 일치를 사용하는 경우 작동합니다.


이 쿼리를 시도 할 때이 오류가 발생합니다. 힌트 : 주어진 이름 및 인수 유형과 일치하는 함수가 없습니다. 명시 적 유형 캐스트를 추가해야 할 수도 있습니다.
Luna Lovegood

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.