我在MySQL DB中有一个带speed
列的表。
速度
100 Mbits
120 Mbits
我正在尝试更新此列,以从此列中删除Mbits
部分。
我可以使用就地执行此任务的查询吗?
我尝试使用谷歌搜索建议split_str
函数,这看起来很复杂。
非常感谢任何帮助。
此致 马丹
答案 0 :(得分:3)
您可以使用replace
执行此操作。
update mytable set speed = replace(speed, 'Mbits', '')
where lower(speed) like '%mbits%'
编辑:乘以1000,速度包含Mbits
update mytable set speed = 1000 * cast(replace(speed, 'Mbits', '') as signed)
where lower(speed) like '%mbits%'
答案 1 :(得分:2)
你可以使用substring_index。类似的东西:
UPDATE table
SET speed = SUBSTRING_INDEX(speed,'Mbits', 1);
WHERE speed LIKE '%Mbits%'
答案 2 :(得分:2)
使用此:
Update table set speed=LEFT(speed, INSTR(speed, ' ') - 1)
结果来自:
100 Mbits
120 Mbits
要
100
120