MySQL:将连字符插入字符串

时间:2013-08-27 16:17:20

标签: php mysql insert zipcode hyphen

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

55555仍为55555

999999999成为99999-9999

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

我对如何解决这个问题感到茫然。任何有关MySQL查询帮助的建议都将不胜感激。

2 个答案:

答案 0 :(得分:3)

如果您需要更新该值,可以使用此更新查询:

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

请参阅小提琴here

答案 1 :(得分: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']}");
    }
}

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