转换问题 - varchar 字段中的价格转换为 MySql 中的小数
Conversion Issue - Price in varchar fields to Decimal in MySql
我有一个 table products
,价格字段是 product_price
,它在 VARCHAR
中。
我从不同的来源获取价格价值,这些来源的格式不同,例如
52,20
1,607,211
36,000
125.00
我不想像
那样改变我的 table
ALTER TABLE products MODIFY COLUMN product_price DOUBLE;
问题是我想对记录进行排序但是它不起作用
SELECT * FROM `products` ORDER BY CAST(product_price AS DECIMAL(10,2)) asc
如何对其进行排序以适用于所有类型和格式的价格?
您必须从价格字符串中删除所有逗号,然后您可以使用如下查询,但如果您使用正确的数据类型来存储价格会更好,这样您就不需要在查询中使用这些类型的 hack
SELECT *
FROM `products`
ORDER BY replace(product_price,',','') * 1
我有一个 table products
,价格字段是 product_price
,它在 VARCHAR
中。
我从不同的来源获取价格价值,这些来源的格式不同,例如
52,20
1,607,211
36,000
125.00
我不想像
那样改变我的 tableALTER TABLE products MODIFY COLUMN product_price DOUBLE;
问题是我想对记录进行排序但是它不起作用
SELECT * FROM `products` ORDER BY CAST(product_price AS DECIMAL(10,2)) asc
如何对其进行排序以适用于所有类型和格式的价格?
您必须从价格字符串中删除所有逗号,然后您可以使用如下查询,但如果您使用正确的数据类型来存储价格会更好,这样您就不需要在查询中使用这些类型的 hack
SELECT *
FROM `products`
ORDER BY replace(product_price,',','') * 1