Bir sütunun tüm değerlerini küçük harfe güncelle


101

Bende böyle bir şey olduğunu söyleyelim

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

"Etiket" sütunundaki tüm değerleri şu şekilde nasıl güncelleyebilirim:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

MySQL mi kullanıyorsunuz?

Yanıtlar:


244

3
Veritabanınız büyük / küçük harfe duyarlı olmayan eşleme kullandığında bu doğru çalışmaz.
ZümrütD.

Bu e-posta adresleriyle nasıl çalışacak? Name@domain.com @ değişecek mi?
Björn C

2
UPDATE table_name SET tag = BINARY LOWER(tag)büyük / küçük harfe duyarsız eşleme için.
Enyby

2
@ BjörnC - sadece yukarı / aşağı harfleri değiştirir; diğer tüm karakterler değişmez.
ToolmakerSteve

@Rippo Bu sorguyu denediğimde bu hatayı alıyorumHINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood

68

DÜŞÜK ()

update table set tag = LOWER(tag)

Bu sorguyu denediğimde bu hatayı alıyorum İPUCU: Verilen isim ve argüman türleriyle eşleşen hiçbir işlev yok. Açık tip atamaları eklemeniz gerekebilir.
Luna Lovegood

4

Büyük / küçük harfe duyarsız eşleme için sürüm ve tüm sütunu güncellemek istemiyorsanız bir "WHERE" yan tümcesi içeren sürüm:

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

COLLATE satırı, veritabanınız benimki gibi büyük / küçük harfe duyarlı olmayan eşleştirme kullanıyorsa çalışmasını sağlayacaktır.


Bu sorguyu denediğimde bu hatayı alıyorum İPUCU: Verilen isim ve argüman türleriyle eşleşen hiçbir işlev yok. Açık tip atamaları eklemeniz gerekebilir.
Luna Lovegood

3

Bunu dene:

update `table` set `column_name` = LOWER(column_name without quotation)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.