0

我有一个带有邮政编码列的 MySQL 数据库。有些邮政编码是五位数,有些是九位数。如果字段是九个字符,我需要在第五个和第六个字符之间插入一个连字符。

55555 剩余 55555

999999999 变为 99999-9999

我可以在使用 PHP 回显时添加它们,但如果我可以将连字符添加到数据库中 zipcode 列中的数据中,效率会更高。

我不知道如何处理这个问题。任何有关 MySQL 查询帮助的建议将不胜感激。

4

2 回答 2

4

如果需要更新值,可以使用以下更新查询:

UPDATE yourtable
SET
  zip = CONCAT_WS('-', SUBSTR(zip, 1, 5), SUBSTR(zip, 6))
WHERE
  LENGTH(zip)=9

在此处查看小提琴。

于 2013-08-27T16:46:08.393 回答
0
<?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']}");
    }
}

这是一个简单的解决方案,调整查询中的表名,应该就是这样。

于 2013-08-27T16:26:25.483 回答