【问题标题】:Update all values of a column to lowercase将列的所有值更新为小写
【发布时间】:2011-05-28 09:51:53
【问题描述】:

假设我有这样的东西

uid    tag
1      HeLLo
2      heLLO
3      HELLO
4      hello

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

uid    tag
1      hello 
2      hello 
3      hello 
4      hello 

使用 MySQL?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    【讨论】:

    • 注意,当您的数据库使用不区分大小写的匹配时,这不起作用。
    • 这将如何与电子邮件地址一起使用? Name@domain.com @ 会改变吗?
    • UPDATE table_name SET tag = BINARY LOWER(tag) 用于不区分大小写的匹配。
    • @BjörnC - 上/下只改变字母;所有其他字符均未更改。
    【解决方案2】:

    LOWER()

    update table set tag = LOWER(tag)
    

    【讨论】:

    • 我在尝试此查询时收到此错误提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
    【解决方案3】:

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

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

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

    【讨论】:

    • 我在尝试此查询时收到此错误提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
    【解决方案4】:

    试试这个:

    update `table` set `column_name` = LOWER(column_name without quotation)
    

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2017-05-08
      • 2021-10-08
      • 2014-04-19
      • 2019-06-11
      • 2021-04-11
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多