すべての価格が不安定なので、ファイルを前処理する必要があると思います。また、xx,xxx.xx は有効な mysql float(double) ではありません。値が引用符で囲まれている場合は文字列であり、引用符で囲まれていない場合は、コンマが列/フィールドの区切りとして機能します。
例
SELECT "50,000.00";
SELECT 50,000.00;
- 2 つの列を返します。1 つは 50 で、もう 1 つは 0.00 です。
前処理については、php で価格を取得したら、このようなことを行うことができます
if (substr($price, -3, 1) == '.'){
// Properly formated, just need to remove the commas
$price = str_replace(',','',$price);
} else if (substr($price, -3, 1) == ','){
// Periods before commas.
// Remove all of the '.', then swap the ending ',' for a '.'
$price = str_replace(array('.', ','), array('', '.'), $price);
} else {
// Price is in an odd format
// Two options:
// Remove product entirely
// or
// Remove all non-numeric values from price (assumes no negative prices)
$price = preg_replace('/[^0-9]/', '', $price);
}