Php MySQL:在字符串中插入连字符
我有一个带有zipcode列的MySQL数据库。有些邮政编码是五位数,有些是九位数。如果字段是九个字符,我需要在第五个字符和第六个字符之间插入连字符 55555仍然是55555 999999999变为99999-9999 我可以在使用PHP时添加它们,但是如果我可以在数据库的zipcode列中的数据中添加连字符,效率会更高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
我不知道如何处理这个问题。如果您对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。谢谢。另一个有用的选择。谢谢另一个有用的选择。谢谢