我有列数据。例如,EELMEX00001。我需要在字母后面插入另一个零。长度设置为12。任何人都可以通过查询帮助我。如果字符串小于11,则在字母后插入另一个零。任何帮助表示赞赏。
答案 0 :(得分:0)
如果位置始终相同(在您的示例中似乎很可能),则可以执行以下操作:
select concat(left(col, 6), '0', right(col, 5))
如果位置可以变化,则在MySQL的较早版本中这很容易。在MySQL 8+中,您可以执行以下操作:
select concat(regexp_substr(col, '[^0-9]+', 1), '0', regexp_substr(col, '[0-9]+$', 1))
from (select 'EELMEX00001' as col) x
如果您想实际更改列:
update t
set col = concat(left(col, 6), '0', right(col, 5))
where col regexp '^[a-zA-Z]{6}[0-9]{5}$';
答案 1 :(得分:0)
尝试一下。这只会影响LENGTH(Your_Column)= 11的行。所有其他值将保持与现在相同。
UPDATE your_Table
SET your_column =
CASE
WHEN LENGTH(Your_Column) = 11 THEN CONCAT (your_column,'0')
ELSE your_column
END;