我在MySQL数据库的表中有一列,用于存储以逗号分隔的数字。这是一个例子:
,,322,,,,455,,,,698,,,,722,
有一个特定的模式:
我在维护这种模式时遇到一些困难..有时候这个字段更新不正确导致某些地方出现太多或太少的逗号:
,,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来更新列中的所有值以遵循上面提到的特定模式要求?
答案 0 :(得分:1)
这里的问题看起来像你错过了一个数字,而不是它没有遵循你的模式。
,,166,,,,845,,,,Missing No,,,,846,
您确定要删除吗?我会专注于捕获空值或空白数字。
如果是这样,看起来你应该可以进行替换
Update TableName
Set NumberPattern = Replace(NumberPattern, ',,,,,,,,', ',,,,') --Repalce 8 ',' with 4 ','