3

在 Wordpress MySQL 数据库中,在 中wp_postmeta table,大多数行带有meta_key='price'和 ,meta_value='XXX'其中 XXX 是数字。meta_value 是一个长文本字段。存储在其中的数字具有不同的形状,有些用点存储,表示千(10.000 表示一万),另一些用逗号存储,表示百分之一(10,00 表示十)。如何删除点和逗号以获得​​纯数字,而不是百分之一?换句话说,100.000 应该是 100000 而 10,00 应该是 10 提前谢谢您的回答!

4

4 回答 4

6

尝试全局REPLACE函数

UPDATE wp_postmeta
SET meta_value = REPLACE(REPLACE(meta_value,',00',''),'.','')
WHERE meta_key='price';
于 2012-06-26T15:37:56.647 回答
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'
于 2012-06-26T16:37:54.857 回答
0

尝试替换:

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

使用风险自负。

于 2012-06-26T15:37:52.090 回答
0

您需要遍历数据库中的行,只需删除 . 并删除 , 和后面的两个字符。

不过,我不明白您为什么要向后使用符号。

此外,请注意修改数据库可能会改变 WordPress 解释数据的方式。

于 2012-06-26T15:33:56.917 回答