Perbarui semua nilai kolom menjadi huruf kecil


100

Katakanlah saya punya sesuatu seperti ini

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

Bagaimana cara memperbarui semua nilai di kolom "tag" menjadi:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

menggunakan MySQL?

Jawaban:


243

3
Catatan, ini tidak berfungsi dengan benar saat database Anda menggunakan pencocokan tidak peka huruf besar / kecil.
EmeraldD.

Bagaimana ini akan bekerja dengan alamat email? Name@domain.com Akankah @ berubah?
Björn C

2
UPDATE table_name SET tag = BINARY LOWER(tag)untuk pencocokan tidak peka huruf besar / kecil.
Enyby

2
@ BjörnC - huruf besar / kecil hanya mengubah; semua karakter lainnya tidak berubah.
ToolmakerSteve

@Rippo Saya mendapatkan kesalahan ini ketika saya mencoba kueri iniHINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood

68

MENURUNKAN()

update table set tag = LOWER(tag)

Saya mendapatkan kesalahan ini ketika saya mencoba kueri ini PETUNJUK: Tidak ada fungsi yang cocok dengan nama yang diberikan dan tipe argumen. Anda mungkin perlu menambahkan cast tipe eksplisit.
Luna Lovegood

4

Versi untuk pencocokan tidak peka huruf besar / kecil dan menyertakan klausa "WHERE" jika Anda tidak ingin memperbarui seluruh kolom:

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

Garis COLLATE akan membuatnya berfungsi jika database Anda menggunakan pencocokan tidak peka huruf besar / kecil, seperti milik saya.


Saya mendapatkan kesalahan ini ketika saya mencoba kueri ini PETUNJUK: Tidak ada fungsi yang cocok dengan nama yang diberikan dan tipe argumen. Anda mungkin perlu menambahkan cast tipe eksplisit.
Luna Lovegood

3

Coba ini:

update `table` set `column_name` = LOWER(column_name without quotation)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.