Recherche de site Web

Formatage de chaîne de nombres MySQL pour compléter les zéros à gauche d'une chaîne avec des nombres après une barre oblique


Créons d'abord un tableau :

mysql> create table DemoTable1369
    -> (
    -> BatchId varchar(20)
    -> );
Query OK, 0 rows affected (0.46 sec)

Insérez quelques enregistrements dans la table à l'aide de la commande insert. Nous avons inséré ici des nombres séparés par une barre oblique :

mysql> insert into DemoTable1369 values('19/5');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1369 values('19/78');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1369 values('19/567');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1369 values('19/1234');
Query OK, 1 row affected (0.11 sec)

Affichez tous les enregistrements de la table à l'aide de l'instruction select :

mysql> select * from DemoTable1369;

Cela produira le résultat suivant :

+---------+
| BatchId |
+---------+
| 19/5    |
| 19/78   |
| 19/567  |
| 19/1234 |
+---------+
4 row>

Voici la requête pour le formatage de la chaîne numérique. Nous avons mis des zéros après la barre oblique pour remplir le champ. La largeur totale du champ est déterminée par la valeur de champ la plus élevée soit 4 ici pour le numéro « 1234 » :

mysql> select
    -> concat(left(BatchId,3), lpad(substring(BatchId, 4), 4, '0'))
    -> from DemoTable1369;

Cela produira le résultat suivant :

+--------------------------------------------------------------+
| concat(left(BatchId,3), lpad(substring(BatchId, 4), 4, '0')) |
+--------------------------------------------------------------+
| 19/0005                                                      |
| 19/0078                                                      |
| 19/0567                                                      |
| 19/1234                                                      |
+--------------------------------------------------------------+
4 rows in set (0.00 sec)

Articles connexes: