如何移除数据库表字符串列中随机分布的零值字符?
移除SQL表中word列的所有零字符
针对你给出的test_table表结构和数据,要移除word列里所有的0字符,完全不需要用substring函数——用REPLACE全局替换函数更直接高效,刚好匹配你要实现的效果。
先验证结果是否符合预期
可以先执行查询语句,对比计算出的结果和updated_word列是否一致:
SELECT id, word, REPLACE(word, '0', '') AS calculated_updated_word, updated_word FROM test_table;
这条语句会把每一行word里的所有0替换为空字符串,生成calculated_updated_word列,你可以直接和目标列updated_word对比,确认逻辑正确。
直接更新表中word列
如果验证结果没问题,想要把word列直接更新成移除0后的内容,执行以下UPDATE语句:
UPDATE test_table SET word = REPLACE(word, '0', '');
注意:执行UPDATE操作前建议先备份数据,或者用上面的SELECT语句确认结果无误后再执行,避免误操作。
为什么不用substring?
substring是用来截取固定位置或长度的字符串,但你的场景里0可能出现在任意位置,数量也不固定(比如g00gle有两个0,d0d0也有两个),全局替换的REPLACE才是最适配的方案。
内容的提问来源于stack exchange,提问作者zampoan
相关产品推荐
相关产品推荐

