求助MySQL查询:移除|字符最后一次出现前的所有内容
MySQL 移除字段中最后一个
|之前的内容方案 要提取fileinfo字段里最后一个|之后的有效内容,你可以用MySQL的SUBSTRING_INDEX函数配合TRIM清理空格,以下是具体操作:
1. 先验证处理结果(避免直接更新出错)
执行这条查询,检查清理后的内容是否符合预期:
SELECT TRIM(SUBSTRING_INDEX(fileinfo, '|', -1)) AS cleaned_fileinfo FROM your_table_name;
SUBSTRING_INDEX(fileinfo, '|', -1):从字段末尾开始定位最后一个|,提取它之后的所有内容TRIM():去除内容前后的多余空格(比如示例中| 500.68 MB提取后会带前导空格,TRIM后就变成500.68 MB)- 记得把
your_table_name替换为你的实际表名
2. 确认结果正确后,更新字段内容
执行这条UPDATE语句,直接修改fileinfo字段:
UPDATE your_table_name SET fileinfo = TRIM(SUBSTRING_INDEX(fileinfo, '|', -1)) WHERE fileinfo LIKE '%|%';
WHERE fileinfo LIKE '%|%':仅更新包含|的记录,确保原本无|的内容保持不变
原语句出错原因
你直接写IF()语句但未包裹在SELECT或UPDATE逻辑中,且INSTR()只能定位第一个|的位置,无法处理最后一个|的场景,因此触发语法错误。
内容的提问来源于stack exchange,提问作者Robert wall
相关产品推荐
相关产品推荐

