更新现有列数据 MySQL

Update existing column data MySQL

我在 MySQL 数据库中有一个 table 和 speed 列。

速度

100 Mbits
120 Mbits

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

我可以有一个可以执行此任务的就地查询吗?

我尝试了谷歌搜索,它建议 split_str 函数,对于这个任务来说看起来很复杂。

非常感谢任何帮助。

此致, 马丹

您可以使用 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%'

您可以使用 substring_index。类似于:

UPDATE table
SET speed = SUBSTRING_INDEX(speed,'Mbits', 1);
WHERE speed LIKE '%Mbits%'

使用这个:

Update table set speed=LEFT(speed, INSTR(speed, ' ') - 1)

结果来自:

100 Mbits
120 Mbits

100
120