更新现有列数据MySQL

时间:2015-10-21 13:09:29

标签: mysql sql database sql-update

我在MySQL DB中有一个带speed列的表。

速度

100 Mbits
120 Mbits

我正在尝试更新此列,以从此列中删除Mbits部分。

我可以使用就地执行此任务的查询吗?

我尝试使用谷歌搜索建议split_str函数,这看起来很复杂。

非常感谢任何帮助。

此致 马丹

3 个答案:

答案 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