更新字符串以遵循特定格式

时间:2015-01-14 15:40:21

标签: php mysql

我的数据库中有一列存储一串数字,以逗号分隔。

,,133,,,,444,,,,555,,,,6,

规则:

  • 字符串中的第一个数字始终以2个逗号开头
  • 中间数字之间总共有4个逗号
  • 最后一个数字后面只有1个逗号

上面的示例是我总是希望字符串看起来..

当删除其中一些数字时,更新的字符串如下所示:

,,31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,998,,,,476,,,,,

让我在数据库中看起来很乱,有时在我尝试输出每个数字时会引起额外逗号的麻烦

我一直在手动更新每个值以遵循我想要的格式但是我想创建一个每晚运行的脚本并获取每个字符串并按照我上面列出的规则以正确的格式更新它们。

我可以使用什么格式化字符串以遵循上述规则?

1 个答案:

答案 0 :(得分:1)

您可以创建一个php脚本,该脚本从数据库加载值,操纵行,并将操纵的值存储回数据库。我不知道你使用什么数据库和表结构,但操作部分很简单:

// load the string from the database into the $value variable
$numbers= preg_split("/,+/", $value); // split the string 
$numbers= array_filter( $numbers);  // remove empty array elements
$newvalue = implode(',,,,', $numbers); // join the array elements to a string separated by ,,,,
$newvalue = ',,' . $newvalue . ',';  // add ,, at the beginning and , at the end of the new value
// store $newvalue in the database