gpt4 book ai didi

php - 更新 MySQL 列中的所有值以遵循模式

转载 作者:行者123 更新时间:2023-11-29 00:12:01 25 4
gpt4 key购买 nike

我在 MySQL 数据库的表中有一列存储以逗号分隔的数字。这是一个例子:

,,322,,,,455,,,,698,,,,722,

有一个特定的模式:

  • 第一个数字前面总是有两个逗号
  • 第一个和最后一个数字之间用4个逗号隔开
  • 最后一个数字后跟一个逗号
  • 数字总是用逗号分隔

我在维护这个模式时遇到了一些困难。有时这个字段更新不正确,导致某些地方的逗号太多或太少,如下所示:

,,166,,,,845,,,,,,,,846,

我使用这个 PHP 添加/删除逗号:

public function serializeArray($array) {
$string = ',';
foreach ($array as $obj) {
$string .= ',' . $obj . ',';
}
return $string;
}

public function unserializeArray($string) {
$array = explode(",,",$string);
unset($array[0]);
$array = array_values($array);

return $array;

echo "Array: " . print_r($array);

}

更新列的SQL:

$query = $this->pdo->prepare(
'UPDATE `' . $this->table . '` SET
`team_ids` = :team_ids
WHERE `id` = :customer_id LIMIT 1;');

$query->bindParam(':customer_id', $customer_id, PDO::PARAM_INT);
$query->bindParam(':team_ids', $team_ids);
$query->execute();

我可以使用什么 SQL 来更新列中的所有值以遵循上述特定模式要求?

最佳答案

这里的问题看起来像是您遗漏了一个数字,而不是它没有遵循您的模式。

,,166,,,,845,,,,Missing No,,,,846,

您确定要删除它吗?相反,我会专注于捕捉空号或空白号。

如果是这样,看起来你应该能够进行替换

Update   TableName
Set NumberPattern = Replace(NumberPattern, ',,,,,,,,', ',,,,') --Repalce 8 ',' with 4 ','

关于php - 更新 MySQL 列中的所有值以遵循模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com