文字列の前にゼロを追加する必要があります
最初に、検証するデータを選択します
mysql> SELECT cp, LENGTH(cp), CONCAT(0, `cp`) FROM communes WHERE LENGTH(cp) < 5
ORDER BY cp ASC LIMIT 4;
+------+------------+-----------------+
| cp | LENGTH(cp) | CONCAT(0, `cp`) |
+------+------------+-----------------+
| 1000 | 4 | 01000 |
| 1000 | 4 | 01000 |
| 1000 | 4 | 01000 |
| 1090 | 4 | 01090 |
+------+------------+-----------------+
4 rows in set (0.03 sec)
そしてそれはうまくいきます。
次に、更新を試みます
mysql> UPDATE communes SET cp = CONCAT(0,`cp`) WHERE LENGTH(cp) < 5;
Query OK, 0 rows affected (0.07 sec)
Rows matched: 3447 Changed: 0 Warnings: 0
なぜうまくいかないのか理解できない
情報のために
mysql> describe communes;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| cp | int(6) | NO | | NULL | |
| dept | varchar(255) | NO | | NULL | |
| code_insee | int(11) | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
本当にありがとうございました