You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中替换含COMPRIMIDO的字符串仅保留该词?

优化包含COMPRIMIDO的字符串统一处理方案

针对嵌套REPLACE函数应对多变体效率不足的问题,推荐以下两种更优实现方式:

方法一:条件判断匹配(全SQL兼容)

利用CASE WHEN结合LIKE实现批量匹配,无需逐个枚举变体,适用于所有支持SQL标准的数据库:

CASE 
    WHEN medication_type LIKE '%COMPRIMIDO%' THEN 'COMPRIMIDO'
    ELSE medication_type
END AS medication_result

优势:兼容性极强,不管medication_type后面跟多少种后缀变体,只要包含COMPRIMIDO就统一替换,代码简洁易维护,性能远优于多层嵌套REPLACE。

方法二:正则表达式替换(适用于支持正则的数据库)

如果你的数据库支持正则替换(如PostgreSQL、MySQL 8.0+、SQL Server 2017+等),可以用正则精准匹配并替换:

PostgreSQL/MySQL 8.0+

REGEXP_REPLACE(medication_type, '^COMPRIMIDO\s+.+$', 'COMPRIMIDO') AS medication_result

(注:^COMPRIMIDO\s+.+$匹配以COMPRIMIDO开头、后跟空白字符+任意内容的字符串;若要匹配所有包含COMPRIMIDO的字符串,可改为'.*COMPRIMIDO.*')

SQL Server 2017+

REGEXP_REPLACE(medication_type, '^COMPRIMIDO\s+.+$', 'COMPRIMIDO') AS medication_result

优势:代码更简洁,能精准匹配特定格式的字符串,处理复杂变体时灵活性更强。

内容的提问来源于stack exchange,提问作者Mariana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:05:20