我有一个带有邮政编码列的 MySQL 数据库。有些邮政编码是五位数,有些是九位数。如果字段是九个字符,我需要在第五个和第六个字符之间插入一个连字符。
55555 剩余 55555
999999999 变为 99999-9999
我可以在使用 PHP 回显时添加它们,但如果我可以将连字符添加到数据库中 zipcode 列中的数据中,效率会更高。
我不知道如何处理这个问题。任何有关 MySQL 查询帮助的建议将不胜感激。
如果需要更新值,可以使用以下更新查询:
UPDATE yourtable
SET
zip = CONCAT_WS('-', SUBSTR(zip, 1, 5), SUBSTR(zip, 6))
WHERE
LENGTH(zip)=9
请在此处查看小提琴。
<?php
$result = mysqli_query($link, "SELECT zipcode, id FROM table");
while($row = mysqli_fetch_assoc($result) {
if(strlen($row['zipcode']) > 5) {
$first_part = substr($row['zipcode'],0,5);
$second_part = substr($row['zipcode'],5,9);
$zipcode = $first_part.'-'.$second_part;
$result2 = mysqli_query($link,"UPDATE table SET `zipcode` = $zipcode WHERE id = {$row['id']}");
}
}
这是一个简单的解决方案,调整查询中的表名,应该就是这样。