如何仅更新SQL字段值中括号内的内容?技术咨询
如何仅更新SQL字段值内括号里的内容
当然可以实现仅修改字段值内括号里的内容,不过你提供的语句是直接替换整个DESCRIPTION字段值。如果想仅修改括号内的内容(而非替换整个字符串),可以借助数据库的字符串函数定位括号并完成替换,不同数据库的实现语法略有差异:
MySQL 实现方式
UPDATE HES_SYSTEM_PARAMETERS SET DESCRIPTION = CONCAT( SUBSTRING_INDEX(DESCRIPTION, '(', 1), '(where the sales invoice is not known)', SUBSTRING_INDEX(DESCRIPTION, ')', -1) ) WHERE PARAMETER = 'CASH_OFF';
SQL Server 实现方式
UPDATE HES_SYSTEM_PARAMETERS SET DESCRIPTION = STUFF( DESCRIPTION, CHARINDEX('(', DESCRIPTION) + 1, CHARINDEX(')', DESCRIPTION) - CHARINDEX('(', DESCRIPTION) - 1, 'where the sales invoice is not known' ) WHERE PARAMETER = 'CASH_OFF';
如果你的需求是一次性固定替换,你提供的直接覆盖整个字段的语句完全可行,适合字段内容固定、无需动态匹配的场景。
重要提醒:执行UPDATE操作前,建议先通过SELECT语句验证替换结果,避免误修改数据:
-- 以MySQL为例 SELECT DESCRIPTION AS original_description, CONCAT( SUBSTRING_INDEX(DESCRIPTION, '(', 1), '(where the sales invoice is not known)', SUBSTRING_INDEX(DESCRIPTION, ')', -1) ) AS new_description FROM HES_SYSTEM_PARAMETERS WHERE PARAMETER = 'CASH_OFF';
内容的提问来源于stack exchange,提问作者Abinnaya
相关产品推荐
相关产品推荐

