MySQL为字段前面加一位0

Mysql中有个字段应该是2位字符串,从csv文件导入的时候,前面的0被自动去掉,需要手工加上去,否则在排序的时候,会出现一些问题。

一、未修改前

查询数据库内容如下,01-->1,不方便分组和排序

MariaDB [hbgk]> SELECT c_code,s_code,c_name,grade,class,sub_limit,score,year FROM score_1130 WHERE c_name
="武汉科技大学" ORDER BY c_code,s_code,year;
+--------+--------+--------------------+--------+--------+-----------+-------+------+
| c_code | s_code | c_name             | grade  | class  | sub_limit | score | year |
+--------+--------+--------------------+--------+--------+-----------+-------+------+
| C102   | 01     | 武汉科技大学       | 本科   | 历史   | 不限      |   587 | 2021 |
| C102   | 02     | 武汉科技大学       | 本科   | 物理   | 不限      |   587 | 2021 |
| C102   | 03     | 武汉科技大学       | 本科   | 物理   | 不限      |   581 | 2021 |
| C102   | 04     | 武汉科技大学       | 本科   | 物理   | 不限      |   574 | 2021 |
| C102   | 05     | 武汉科技大学       | 本科   | 物理   | 不限      |   573 | 2021 |
| C102   | 06     | 武汉科技大学       | 本科   | 物理   | 不限      |   554 | 2021 |
| C102   | 07     | 武汉科技大学       | 本科   | 物理   | 不限      |   558 | 2021 |
| C102   | 08     | 武汉科技大学       | 本科   | 物理   | 不限      |   572 | 2021 |
| C102   | 09     | 武汉科技大学       | 本科   | 物理   | 化        |   567 | 2021 |
| C102   | 1      | 武汉科技大学       | 本科   | 历史   | 不限      |   558 | 2022 |
| C102   | 1      | 武汉科技大学       | 本科   | 历史   | 不限      |   564 | 2023 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   572 | 2021 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   550 | 2022 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   578 | 2023 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   568 | 2021 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   544 | 2022 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   569 | 2023 |
| C102   | 2      | 武汉科技大学       | 本科   | 物理   | 不限      |   566 | 2022 |
| C102   | 2      | 武汉科技大学       | 本科   | 物理   | 不限      |   596 | 2023 |
| C102   | 3      | 武汉科技大学       | 本科   | 物理   | 不限      |   561 | 2022 |
| C102   | 3      | 武汉科技大学       | 本科   | 物理   | 不限      |   589 | 2023 |
| C102   | 4      | 武汉科技大学       | 本科   | 物理   | 不限      |   551 | 2022 |
| C102   | 4      | 武汉科技大学       | 本科   | 物理   | 不限      |   580 | 2023 |
| C102   | 5      | 武汉科技大学       | 本科   | 物理   | 不限      |   546 | 2022 |
| C102   | 5      | 武汉科技大学       | 本科   | 物理   | 不限      |   563 | 2023 |
| C102   | 6      | 武汉科技大学       | 本科   | 物理   | 不限      |   539 | 2022 |
| C102   | 6      | 武汉科技大学       | 本科   | 物理   | 不限      |   566 | 2023 |
| C102   | 7      | 武汉科技大学       | 本科   | 物理   | 不限      |   536 | 2022 |
| C102   | 7      | 武汉科技大学       | 本科   | 物理   | 不限      |   564 | 2023 |
| C102   | 8      | 武汉科技大学       | 本科   | 物理   | 不限      |   550 | 2022 |
| C102   | 8      | 武汉科技大学       | 本科   | 物理   | 不限      |   577 | 2023 |
| C102   | 9      | 武汉科技大学       | 本科   | 物理   | 化        |   545 | 2022 |
| C102   | 9      | 武汉科技大学       | 本科   | 物理   | 化        |   573 | 2023 |
+--------+--------+--------------------+--------+--------+-----------+-------+------+

二、修改后

手工在只有一位字符的前面加一个0,再次查询内容如下:

MariaDB [hbgk]> SELECT c_code,s_code,c_name,grade,class,sub_limit,score,year FROM score WHERE c_name="武汉科技大学" ORDER BY c_code,s_code,year;
+--------+--------+--------------------+--------+--------+-----------+-------+------+
| c_code | s_code | c_name             | grade  | class  | sub_limit | score | year |
+--------+--------+--------------------+--------+--------+-----------+-------+------+
| C102   | 01     | 武汉科技大学       | 本科   | 历史   | 不限      |   587 | 2021 |
| C102   | 01     | 武汉科技大学       | 本科   | 历史   | 不限      |   558 | 2022 |
| C102   | 01     | 武汉科技大学       | 本科   | 历史   | 不限      |   564 | 2023 |
| C102   | 02     | 武汉科技大学       | 本科   | 物理   | 不限      |   587 | 2021 |
| C102   | 02     | 武汉科技大学       | 本科   | 物理   | 不限      |   566 | 2022 |
| C102   | 02     | 武汉科技大学       | 本科   | 物理   | 不限      |   596 | 2023 |
| C102   | 03     | 武汉科技大学       | 本科   | 物理   | 不限      |   581 | 2021 |
| C102   | 03     | 武汉科技大学       | 本科   | 物理   | 不限      |   561 | 2022 |
| C102   | 03     | 武汉科技大学       | 本科   | 物理   | 不限      |   589 | 2023 |
| C102   | 04     | 武汉科技大学       | 本科   | 物理   | 不限      |   574 | 2021 |
| C102   | 04     | 武汉科技大学       | 本科   | 物理   | 不限      |   551 | 2022 |
| C102   | 04     | 武汉科技大学       | 本科   | 物理   | 不限      |   580 | 2023 |
| C102   | 05     | 武汉科技大学       | 本科   | 物理   | 不限      |   573 | 2021 |
| C102   | 05     | 武汉科技大学       | 本科   | 物理   | 不限      |   546 | 2022 |
| C102   | 05     | 武汉科技大学       | 本科   | 物理   | 不限      |   563 | 2023 |
| C102   | 06     | 武汉科技大学       | 本科   | 物理   | 不限      |   554 | 2021 |
| C102   | 06     | 武汉科技大学       | 本科   | 物理   | 不限      |   539 | 2022 |
| C102   | 06     | 武汉科技大学       | 本科   | 物理   | 不限      |   566 | 2023 |
| C102   | 07     | 武汉科技大学       | 本科   | 物理   | 不限      |   558 | 2021 |
| C102   | 07     | 武汉科技大学       | 本科   | 物理   | 不限      |   536 | 2022 |
| C102   | 07     | 武汉科技大学       | 本科   | 物理   | 不限      |   564 | 2023 |
| C102   | 08     | 武汉科技大学       | 本科   | 物理   | 不限      |   572 | 2021 |
| C102   | 08     | 武汉科技大学       | 本科   | 物理   | 不限      |   550 | 2022 |
| C102   | 08     | 武汉科技大学       | 本科   | 物理   | 不限      |   577 | 2023 |
| C102   | 09     | 武汉科技大学       | 本科   | 物理   | 化        |   567 | 2021 |
| C102   | 09     | 武汉科技大学       | 本科   | 物理   | 化        |   545 | 2022 |
| C102   | 09     | 武汉科技大学       | 本科   | 物理   | 化        |   573 | 2023 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   572 | 2021 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   550 | 2022 |
| C102   | 10     | 武汉科技大学       | 本科   | 物理   | 化或生    |   578 | 2023 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   568 | 2021 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   544 | 2022 |
| C102   | 11     | 武汉科技大学       | 本科   | 物理   | 化或地    |   569 | 2023 |
+--------+--------+--------------------+--------+--------+-----------+-------+------+

三、操作记录

UPDATE score SET s_code=LPAD(s_code,2,'0') WHERE CHAR_LENGTH(s_code)=1
  1. LPAD(str,len,padstr) 参数解释:
    • str:要进行填充的字符串;
    • len:填充后字符串的长度;
    • padstr:用于填充的字符。
  2. length()、char_length()的区别
    • length(): 单位是字节,utf8编码下,一个汉字三个字节,一个数字或字母一个字节。gbk编码下,一个汉字两个字节,一个数字或字母一个字节。
    • char_length():单位为字符,不管汉字还是数字或者是字母都算是一个字符。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""