需要更新我们数据库中的一列。一列,最多可以有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查询将有助于更新或返回如上所述的值。

最佳答案

您可以使用此查询-

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值,则建议您将数据标准化。

关于mysql - 选择SQL循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15083313/

10-11 02:50