如何用SQL替换数据表指定列中的全部特定值?
正确实现方法分两种场景:
1. 仅查询时替换显示(不修改表中实际数据)
你原来的SELECT语句存在语法错误,列名和REPLACE函数之间缺少逗号,而且最好给替换后的列起别名方便识别。正确写法:
-- 同时显示原列和替换后的列 SELECT pet, REPLACE(pet, 'dog', 'cat') AS updated_pet FROM Animals; -- 只显示替换后的列(可指定别名和原列名一致) SELECT REPLACE(pet, 'dog', 'cat') AS pet FROM Animals;
2. 永久修改表中的数据(把所有'dog'改成'cat')
如果你的需求是真正修改表内的存储数据,SELECT语句做不到,必须用UPDATE语句:
UPDATE Animals SET pet = REPLACE(pet, 'dog', 'cat') WHERE pet = 'dog'; -- 加上WHERE条件只更新pet为'dog'的行,提升执行效率
如果不加WHERE,会遍历表中所有行,虽然结果正确,但对大表来说没必要,建议加上。
内容的提问来源于stack exchange,提问作者CCast
相关产品推荐
相关产品推荐

