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