从mysql数据库中的数字中删除点和逗号

时间:2012-06-26 15:30:08

标签: mysql sql database wordpress

在wordpress mysql数据库中,在wp_postmeta表中,大多数行包含meta_key='price'meta_value='XXX',其中XXX是数字。
meta_value是一个longtext字段。存储在其中的数字具有不同的形状,实际上一些存储有点,意味着千位(10.000表示一万)其他存储有逗号,意味着百分之一(10,00表示十)。
如何删除点和逗号,以便有一个纯数字,没有百分之?换句话说,100.000应该是100000,10,00应该是10
提前感谢您的回答!

4 个答案:

答案 0 :(得分:5)

尝试全局REPLACE功能

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

答案 1 :(得分:1)

你需要注意如何做到这一点。我建议检查'。'或','在字符串的末尾。这需要查看结尾的第三个字符:

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'

答案 2 :(得分:0)

你需要循环遍历数据库中的行,然后删除。并删除它们后面的,以及后两个字符。

我不明白你为什么要向后使用这些符号。

另外,请注意修改数据库可以改变WordPress解释数据的方式。

答案 3 :(得分:0)

尝试REPLACE:

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

使用风险自负。