1
在导入我的数据库,我已经意识到我犯了一个错误,进口一些数字在1K,而不是1000的格式,和1M的,而不是100万。更换价值
我没有看到这一点:
UPDATE YourTable
SET YourColumn = REPLACE(YourColumn, '%', '');
然而,这将产生怎样看与1.25k,而不是1250我会得到1.25000
什么是解决这一问题的可能方式有问题。
在导入我的数据库,我已经意识到我犯了一个错误,进口一些数字在1K,而不是1000的格式,和1M的,而不是100万。更换价值
我没有看到这一点:
UPDATE YourTable
SET YourColumn = REPLACE(YourColumn, '%', '');
然而,这将产生怎样看与1.25k,而不是1250我会得到1.25000
什么是解决这一问题的可能方式有问题。
使用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
编辑:我假设yourcolumn是一个字符列,而不是数字。
我得到了 #1064 - 你的SQL语法有错误;检查对应于您的MySQL服务器版本的手册,以便在'时长(数字)附近使用正确的语法'< >长度(替换(数字,'m','在第7行 –
对不起,我没有MySql本地可用。它可能是你需要的!=而不是<>,例如 – davek
不知道是什么问题(它发生在第二个其他人的时候),但我能通过运行命令两次解决问题。 –