代码之家  ›  专栏  ›  技术社区  ›  Stuart

mysql查询为每个条目添加字符

  •  13
  • Stuart  · 技术社区  · 17 年前

    我有一个用户表,它有一个用户名列,由一个六位数组成,例如675381,我需要在每个用户名前面加一个零,例如0675381,这将是前一个示例的最终输出,是否有一个可以处理这个问题的查询?

    4 回复  |  直到 13 年前
        1
  •  28
  •   Niko    14 年前
    UPDATE Tablename SET Username = Concat('0', Username);
    
        2
  •  5
  •   f13o    17 年前

    列的类型是什么?

    如果是字符串类型,请尝试如下操作:

    UPDATE your_table SET column_name=concat('0',column_name);
    
        3
  •  1
  •   Mike Woodhouse    17 年前

    你是说“预先准备”?也就是说,把它加在前面?

    列是数字吗?是否总是要输出7个字符?

    假设这样,这样的查询就可以工作了:

    select LPAD(CONVERT(username, CHAR), 7, '0')
    

    如果列是字符,则不需要convert()部分,只需lpad用户名即可。

    如果要永久修改表中的值,则需要确保列是字符类型,并使用上面的内容进行更新。

        4
  •  0
  •   Darryl Hein IrishChieftain    17 年前

    您可能希望使用concat_ws(“”,'0',用户名),因为如果有空值,那么您将以空而不是“0”结束。这可能不是问题,但我学到了一些很难的方法。