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