SQL-根据条件将字符插入字符串

时间:2019-06-15 17:38:02

标签: mysql sql

我有列数据。例如,EELMEX00001。我需要在字母后面插入另一个零。长度设置为12。任何人都可以通过查询帮助我。如果字符串小于11,则在字母后插入另一个零。任何帮助表示赞赏。

2 个答案:

答案 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;