替换数据库中的值

时间:2012-09-11 06:52:03

标签: mysql database

在导入我的数据库时,我意识到我犯了一个错误,并以1k而不是1000,1m而不是1000000的格式输入了一些数字。

我确实看到了这个:

UPDATE YourTable
    SET YourColumn = REPLACE(YourColumn, '%', '');

然而,这会产生一个问题,看看1.25k而不是1250我会得到1.25000

解决这个问题的可行方法是什么。

1 个答案:

答案 0 :(得分:1)

使用CASE语句:

update yourtable
set yourcolumn = 
case when length(yourcolumn) <> 
          length(replace(yourcolumn, 'k', '')) 
then
   replace(yourcolumn, 'k', '') * 1000 
else when length(yourcolumn) <> 
          length(replace(yourcolumn, 'm', '')) 
then
   replace(yourcolumn, 'm', '') * 1000000
else
   yourcolumn 
end

编辑:我假设你的列是一个字符列,而不是数字。