【问题标题】:Mysql number-string formattingMysql 数字字符串格式化
【发布时间】:2016-06-22 06:38:06
【问题描述】:

我有一个名为 unique_id 的列,它可以取值,

16-01
16-10,
16-250,
16-1594

16 是年份(例如 2016 年),01 是今年的计数。我设法使用 BEFORE INSERT TRIGGER 获得这种格式。 现在我想在计数中有 4 个字符格式,例如

16-0001
16-0010
16-0250
16-1594

如何管理这种格式?

【问题讨论】:

标签: mysql


【解决方案1】:

你可以使用LPAD(yourcolumn, 4, '0');)

select
    concat(left(data,3), lpad(substring(data, 4), 4, '0'))
from test

DEMO HERE

并查看手册here

【讨论】:

    【解决方案2】:

    用途:

    UPDATE Table1
    SET Column1=concat(left(Column1,3), lpad(substring(Column1, 4), 4, '0'));
    

    SQL Fiddle

    或者,可以使用 RegEx 替换 MYSQL UDF

    【讨论】:

    • 我觉得UPDATESELECT没有太大区别,我提供的只是一种解决问题的方法,如果你同意,你可以点赞,那里不需要在这里再发一次。
    • 我同意。如果是选择或更新,对我来说没有区别
    • 您可以使用github.com/hholzgra/mysql-udf-regexp进行此更新
    • @PatroklosPatroklou 抱歉,我觉得这是问题的答案,因为 SELECT 仅打印输出而不是更新表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    相关资源
    最近更新 更多