MySQL如何删除找到的所有记录的前3个字母?

问题描述 投票:1回答:2

我有一个名为Column1的列,看起来像这样:

ABCABC321
ABCABC213
ABC478
ABC474

这是一个查询,显示所有'ABC'的额外字符

select * from TABLE where Column like 'ABCABC%';

这是输出:

ABCABC321
ABCABC213

如何从上面使用的查询中删除所有记录的多余“ ABC”?

这是所需的输出:

ABC321
ABC213
ABC478
ABC474
mysql
2个回答
3
投票
UPDATE your_table
SET your_column = RIGHT(your_column, CHAR_LENGTH(your_column) - 3)
WHERE your_column LIKE 'ABCABC%';

0
投票

使用大小写条件和SUBSTRING函数从第4个字符读取字符串值(忽略前3个字符:]

select 
  case when Column1 like 'ABCABC%'
    then substring(Column1, 4)
    else Column1
  end as Column1
from Table1

请参见db-fiddle上的恶魔

© www.soinside.com 2019 - 2024. All rights reserved.