更新现有列数据 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
我在 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