MariaDB(MySQL)中如何仅当字符串首字符为空格时替换其为空
错误原因
SET 子句后必须指定要更新的字段本身,不能对函数返回值执行赋值操作,你原有写法里试图直接给SUBSTRING()的计算结果赋值,不符合SQL语法规则。
符合需求的标准写法(仅删除首字符的单个空格,兼容MySQL、PostgreSQL、SQL Server等绝大多数主流数据库)
UPDATE contact SET FirstName = SUBSTRING(FirstName, 2) WHERE FirstName LIKE ' %';
逻辑说明:WHERE条件已经筛选出所有首字符为空格的记录,直接取FirstName从第2位开始的所有字符作为新值,即可实现删除首个空格的需求。
注意:执行UPDATE操作前建议先运行
SELECT * FROM contact WHERE FirstName LIKE ' %'确认匹配的行符合预期,避免误改数据。
扩展写法(如需删除所有前导空格可使用)
如果要一次性去掉FirstName开头的所有连续空格,可以直接使用左修剪函数:
UPDATE contact SET FirstName = LTRIM(FirstName) WHERE FirstName LIKE ' %';
Oracle环境下也可以写为:
UPDATE contact SET FirstName = TRIM(LEADING ' ' FROM FirstName) WHERE FirstName LIKE ' %';
内容的提问来源于stack exchange,提问作者user12828557
相关产品推荐
相关产品推荐

