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
不知道是什麼問題(它發生在第二個其他人的時候),但我能通過運行命令兩次解決問題。 –