簡體   English   中英

從MySQL數據庫中的數字中刪除點和逗號

[英]Remove dots and commas from numbers in MySQL database

在Wordpress MySQL數據庫的wp_postmeta table ,大多數行具有meta_key='price'meta_value='XXX' ,其中XXX是數字。 meta_value是一個長文本字段。 存儲在其中的數字具有不同的形狀,其中一些存儲有一個點,表示一千(10.000表示一萬),另一些存儲有一個逗號,表示百分數(10,00表示十)。 如何刪除點和逗號,使之成為一個純數字,而不是百分之一百? 換句話說,100.000應該是100000,而10,00應該是10預先感謝您的回答!

嘗試全局替換功能

UPDATE wp_postmeta
SET meta_value = REPLACE(REPLACE(meta_value,',00',''),'.','')
WHERE meta_key='price';

您需要注意如何執行此操作。 我建議檢查“。” 或','在字符串末尾。 這需要從末尾看第三個字符:

update wp_postmeta
    set meta_value = (case when left(right(meta_value, 3), 1) = '.'
                           then replace(meta_value, ',', '')
                           when left(right(meta_value, 3), 1) = ','
                           then replace(meta_value, '.', '')
                           else replace(replace(meta_value, ',', ''), '.', '')
                      end)
    where meta_key = 'price'

您將需要遍歷數據庫中的行,僅刪除。並刪除,和之后的兩個字符。

我不明白為什么您會反向使用這些符號。

另外,請注意,修改數據庫可能會更改WordPress解釋數據的方式。

嘗試更換:

UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '.', '') WHERE meta_key='price';
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, ',', '') WHERE meta_key='price'

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

使用風險自負。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM