访问MySQL奇怪的价格字段
问题描述:
我正在开发使用ms-access数据库的应用程序的新版本,因为它变得太慢了。 所以我决定使用MySQL作为数据库。我很满意我的选择。 问题是我有一个庞大的数据库充满了价格。该价格在旧应用程序中正确显示,但在我的数据库中显示如下:'26,.000000.00'
,'71,9.00000.00'
,'24,9.00000.00'
。 该字段是访问MySQL奇怪的价格字段
'price' VARCHAR(255) NOT NULL DEFAULT '0',
我不知道如何解决这个问题。这是因为数据类型还是因为应用程序非常糟糕?
答
我认为你应该使用正确的数据类型来存储这些值,如果你试图存储价格(金钱),那么你应该使用十进制数据类型。
这是个什么文件说:
定点(准确值)类型
的decimal和numeric类型存储精确的数值数据。使用这些类型时,重要的是要保留精确的精度,例如使用货币数据。在MySQL中,NUMERIC被实现为DECIMAL,所以关于DECIMAL的以下评论同样适用于NUMERIC。
你可以阅读更多关于这一点,在这里:http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
答
我不知道如何解决这个问题。这是因为数据类型还是因为应用程序非常糟糕?
问题应该是数据类型。这thread将帮助您选择一个。
另外,您可能会希望将您的列转换为十进制(或其他数字)类型。 它是这样
- 添加所需 类型的新列,
ALTER TABLE herpderp add new_price Decimal (19,4)
- 从旧柱填充它(你需要一个 方便的功能,您 字符串转换为数字)
update herpderp set new_price = handy_function(price)
- 删除旧列
ALTER TABLE herpderp DROP COLUMN price
- 新列 重命名为旧名称
ALTER TABLE herpderp CHANGE COLUMN new_price price
您是如何将Access数据传输到MySQL的? – 2011-05-03 14:22:04
我曾经使用过一次razor sql和一次bullzip ms访问mysql。相同的结果。 – Simone 2011-05-03 14:31:42