将列的所有值更新为小写


100

可以说我有这样的事情

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

如何将“标签”列中的所有值更新为:

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

使用MySQL?

Answers:


243

3
请注意,当您的数据库使用不区分大小写的匹配时,这是行不通的。
EmeraldD。

如何处理电子邮件地址?Name@domain.com @会更改吗?
比约恩Ç

2
UPDATE table_name SET tag = BINARY LOWER(tag)不区分大小写的匹配。
Enyby

2
@BjörnC-上/下仅更改字母;其他所有字符均保持不变。
ToolmakerSteve

@Rippo我尝试此查询时遇到此错误HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Luna Lovegood


4

不区分大小写的匹配版本,如果您不想更新整个列,则包含“ WHERE”子句:

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

如果您的数据库使用不区分大小写的匹配,则COLLATE行将起作用,就像我的一样。


当我尝试此查询时出现此错误提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
露娜·洛夫古德

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.