0

需要更新我们数据库中的列。一列最多可以有 7 组数字,它们之间用空格分隔。喜欢

3548 132 760 2348
123 346
37 982 439 

我需要更新这些列,如下所示。

3548 132 760 2348 0 0 0 
123 346 0 0 0 0 0
37 982 439 0 0 0

即喜欢填满7组数字的东西。将4套改为7套。

我可以通过以下方式计算列中的集合数

SELECT LENGTH('3548 132 760 2348')-LENGTH(REPLACE('3548 132 760 2348', ' ', '')) + 1

它返回列中的集合数。什么 SQL 查询将有助于更新或返回上面给出的值。

4

1 回答 1

1

您可以使用此查询 -

SET @str = '548 132 760 2348';
SELECT RPAD(@str, LENGTH(@str) + (6 - (LENGTH(@str) - LENGTH(REPLACE(@str, ' ', '')))) * 2,' 0');

>548 132 760 2348 0 0 0

但如果这些是 ID 值,那么我建议您对数据进行规范化。

于 2013-02-26T07:22:48.853 回答