将前导零添加到MySQL数据

将前导零添加到MySQL数据,mysql,sql,Mysql,Sql,我在MySQL表中有一些混乱的数据需要清除。所有内容都应该是3或4个字符,两个字符的内容都需要前导零 混乱数据示例: 23 5351 142 91 4911 1514 53 931 984 应该是: 023 5351 142 091 4911 1514 053 931 984 我已经读到应该使用ZEROFILL或LPAD,但由于我的长度不同(3-4),我不确定这是否是最好的方法,我担心4个字符的数据会被缩短或类似。我想知道一些方向-谢谢 编辑:我应该添加,此列的类型为mediumint(2)

我在MySQL表中有一些混乱的数据需要清除。所有内容都应该是3或4个字符,两个字符的内容都需要前导零

混乱数据示例:

23
5351
142
91
4911
1514
53
931
984
应该是:

023
5351
142
091
4911
1514
053
931
984
我已经读到应该使用ZEROFILL或LPAD,但由于我的长度不同(3-4),我不确定这是否是最好的方法,我担心4个字符的数据会被缩短或类似。我想知道一些方向-谢谢


编辑:我应该添加,此列的类型为mediumint(2)。如果需要,我可以随意更改此选项。

使用ZEROFILL,因为它可以满足您在长度超过3时不截断数据的要求。如果小于3,则仅填充0


使用ZEROFILL,因为它可以满足在长度超过3时不截断数据的要求。如果小于3,则仅填充0


使用ZEROFILL,因为它可以满足在长度超过3时不截断数据的要求。如果小于3,则仅填充0


使用ZEROFILL,因为它可以满足在长度超过3时不截断数据的要求。如果小于3,则仅填充0

我担心4个字符的数据将被缩短或类似

否。除非指定的填充长度小于数据的当前长度,否则不会剪切数据

使用
LPAD
可以确保给定的长度

示例

mysql> SELECT LPAD('hi',4,'??');
        -> '??hi' -- result is a string of length 4
-- result data will be cut if padding is less than data length
mysql> SELECT LPAD('hi',1,'??'); 
        -> 'h' -- result is a string of length 1
在数据上,可以指定等于字段数据最大长度的长度。 如果数据的最大长度为4位,则
试试这个:

SELECT field_name fv, LPAD( field_name, 4, '0' ) lfv from my_table;
其结果如下:

+------+------+
| fv   | lfv  |
+------+------+
|   23 | 0023 |
| 5351 | 5351 |
|  142 | 0142 |
|   91 | 0091 |
| 4911 | 4911 |
| 1514 | 1514 |
|   53 | 0053 |
|  931 | 0931 |
|  984 | 0984 |
+------+------+
请参阅

我担心4个字符的数据将被缩短或类似

否。除非指定的填充长度小于数据的当前长度,否则不会剪切数据

使用
LPAD
可以确保给定的长度

示例

mysql> SELECT LPAD('hi',4,'??');
        -> '??hi' -- result is a string of length 4
-- result data will be cut if padding is less than data length
mysql> SELECT LPAD('hi',1,'??'); 
        -> 'h' -- result is a string of length 1
在数据上,可以指定等于字段数据最大长度的长度。 如果数据的最大长度为4位,则
试试这个:

SELECT field_name fv, LPAD( field_name, 4, '0' ) lfv from my_table;
其结果如下:

+------+------+
| fv   | lfv  |
+------+------+
|   23 | 0023 |
| 5351 | 5351 |
|  142 | 0142 |
|   91 | 0091 |
| 4911 | 4911 |
| 1514 | 1514 |
|   53 | 0053 |
|  931 | 0931 |
|  984 | 0984 |
+------+------+
请参阅

我担心4个字符的数据将被缩短或类似

否。除非指定的填充长度小于数据的当前长度,否则不会剪切数据

使用
LPAD
可以确保给定的长度

示例

mysql> SELECT LPAD('hi',4,'??');
        -> '??hi' -- result is a string of length 4
-- result data will be cut if padding is less than data length
mysql> SELECT LPAD('hi',1,'??'); 
        -> 'h' -- result is a string of length 1
在数据上,可以指定等于字段数据最大长度的长度。 如果数据的最大长度为4位,则
试试这个:

SELECT field_name fv, LPAD( field_name, 4, '0' ) lfv from my_table;
其结果如下:

+------+------+
| fv   | lfv  |
+------+------+
|   23 | 0023 |
| 5351 | 5351 |
|  142 | 0142 |
|   91 | 0091 |
| 4911 | 4911 |
| 1514 | 1514 |
|   53 | 0053 |
|  931 | 0931 |
|  984 | 0984 |
+------+------+
请参阅

我担心4个字符的数据将被缩短或类似

否。除非指定的填充长度小于数据的当前长度,否则不会剪切数据

使用
LPAD
可以确保给定的长度

示例

mysql> SELECT LPAD('hi',4,'??');
        -> '??hi' -- result is a string of length 4
-- result data will be cut if padding is less than data length
mysql> SELECT LPAD('hi',1,'??'); 
        -> 'h' -- result is a string of length 1
在数据上,可以指定等于字段数据最大长度的长度。 如果数据的最大长度为4位,则
试试这个:

SELECT field_name fv, LPAD( field_name, 4, '0' ) lfv from my_table;
其结果如下:

+------+------+
| fv   | lfv  |
+------+------+
|   23 | 0023 |
| 5351 | 5351 |
|  142 | 0142 |
|   91 | 0091 |
| 4911 | 4911 |
| 1514 | 1514 |
|   53 | 0053 |
|  931 | 0931 |
|  984 | 0984 |
+------+------+

请参阅:

LPAD是您想要的,但您只想将0添加到长度小于3个字符的数字中,您可以执行以下操作:

update TABLE set COLUMN = LPAD(COLUMN, 3, '0') where COLUMN < 100
updatetablesetcolumn=LPAD(列,3,'0'),其中列<100

LPAD是您想要的,但您只想向长度小于3个字符的数字添加0,您可以执行以下操作:

update TABLE set COLUMN = LPAD(COLUMN, 3, '0') where COLUMN < 100
updatetablesetcolumn=LPAD(列,3,'0'),其中列<100

LPAD是您想要的,但您只想向长度小于3个字符的数字添加0,您可以执行以下操作:

update TABLE set COLUMN = LPAD(COLUMN, 3, '0') where COLUMN < 100
updatetablesetcolumn=LPAD(列,3,'0'),其中列<100

LPAD是您想要的,但您只想向长度小于3个字符的数字添加0,您可以执行以下操作:

update TABLE set COLUMN = LPAD(COLUMN, 3, '0') where COLUMN < 100
updatetablesetcolumn=LPAD(列,3,'0'),其中列<100

if(length(your_字段)这是一个错误的标题。它应该说,“在Mysql数据表示中添加前导零”。前导零在这里不是数据的一部分。if(length(your_字段)这是一个错误的标题。它应该说,“在Mysql数据表示中添加前导零”。前导零在这里不是数据的一部分。如果(length(your_字段)这是一个不好的标题。它应该说,“在Mysql数据表示中添加前导零”。前导零在这里不是数据的一部分。如果(length(your_字段)这是一个不好的标题。它应该说,“在Mysql数据表示中添加前导零”。前导零不是数据的一部分。谢谢-最简单的解决方案,我很高兴我可以使用ZEROFILL。我现在可以作为MEDIUMINT(4)ZEROFILL使用。谢谢-最简单的解决方案,我很高兴我可以使用ZEROFILL。我现在可以作为MEDIUMINT(4)使用ZEROFILL谢谢-最简单的解决方案,我很高兴我可以使用ZEROFILL。我现在可以作为MEDIUMINT(4)ZEROFILL使用。谢谢-最简单的解决方案,我很高兴我可以使用ZEROFILL。我现在可以作为MEDIUMINT(4)ZEROFILL使用