Wordpress MySQLデータベースではwp_postmeta table
、にほとんどの行がmeta_key='price'
ありmeta_value='XXX'
、XXXは数字です。meta_valueは長いテキストフィールドです。格納されている数値の形は異なります。ドットで格納されているものもあれば、1000を意味します(10.000は10,000を意味します)。その他の数値は、コンマで格納されており、100分の1を意味します(10,00は10を意味します)。ドットとコンマを削除して、100分の1のない純粋な数値にする方法は?つまり、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
これを行う方法に注意する必要があります。'。'を確認することをお勧めします。または、文字列の最後に「、」があります。これには、最後から3番目の文字を確認する必要があります。
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
データベース内の行をループして、。を削除し、、、およびそれらの後ろの次の2文字を削除する必要があります。
ただし、なぜ記号を逆方向に使用しているのかわかりません。
また、データベースを変更すると、WordPressがデータを解釈する方法が変わる可能性があるので注意してください。
于 2012-06-26T15:33:56.917 に答える
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 に答える