Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL:在字符串中插入连字符_Php_Mysql_Insert_Zipcode_Hyphen - Fatal编程技术网

Php MySQL:在字符串中插入连字符

Php MySQL:在字符串中插入连字符,php,mysql,insert,zipcode,hyphen,Php,Mysql,Insert,Zipcode,Hyphen,我有一个带有zipcode列的MySQL数据库。有些邮政编码是五位数,有些是九位数。如果字段是九个字符,我需要在第五个字符和第六个字符之间插入连字符 55555仍然是55555 999999999变为99999-9999 我可以在使用PHP时添加它们,但是如果我可以在数据库的zipcode列中的数据中添加连字符,效率会更高 我不知道如何处理这个问题。如果您对MySQL查询帮助有任何建议,我们将不胜感激。如果您需要更新该值,您可以使用此更新查询: <?php $result = mysqli

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

55555仍然是55555

999999999变为99999-9999

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


我不知道如何处理这个问题。如果您对MySQL查询帮助有任何建议,我们将不胜感激。

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

<?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']}");
    }
}
UPDATE yourtable
SET
  zip = CONCAT_WS('-', SUBSTR(zip, 1, 5), SUBSTR(zip, 6))
WHERE
  LENGTH(zip)=9

请参阅fiddle。

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

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

请看小提琴。

CONCAT(SUBSTR(zip,1,5),'-',SUBSTR(zip,6))
.
CONCAT(SUBSTR(zip,1,5),'-',SUBSTR(zip,6))
.是的!确切地我无法完全理解这个逻辑,看到它,concat有着完美的意义,我很高兴了解concat_ws。谢谢,是的!确切地我无法完全理解这个逻辑,看到它,concat有着完美的意义,我很高兴了解concat_ws。谢谢。另一个有用的选择。谢谢另一个有用的选择。谢谢