查询多种货币

时间:2010-04-30 09:56:08

标签: sql mysql search currency

我需要在我的数据库中存储多种货币......这就是问题所在:

示例表:

[ Products ]
id (INT, PK)
name (VARCHAR)
price (DECIMAL)
currency (INT, FK)

[ Currencies ]
id (INT, PK)
name (VARCHAR)
conversion (DECIMAL) # To U$

我将使用用户选择的货币存储产品价格......

稍后我需要使用价格区间搜索产品,例如“搜索产品>价格从50美元到100美元”,我需要系统“动态”转换这些值以运行SQL查询和过滤产品。

我真的不知道怎么做这个查询...:/

也许是这样的?

SELECT p.`name`, p.`price` * c.`conversion` AS price
FROM `products` AS p
INNER JOIN `conversion` AS c
   ON p.`currency` = c.`id`
WHERE price >= 50 AND price <= 100
LIMIT 10

2 个答案:

答案 0 :(得分:3)

SELECT P.name, P.price local_price, P.price * C.conversion usd_price
FROM   Products P
INNER JOIN Currencies C
ON     C.id = P.currency

然后你可以添加像

这样的条件
WHERE (P.price * C.conversion) > 50

价格高于50美元。

修改

如果您没有,最好有美元的货币记录(转换价值为1.0),因此转换为美元不是例外。

答案 1 :(得分:0)

除了我的头脑,我能想到的是,您的美元乘数将为1,因此您可以将价格与转换相乘,并在查询中获取美元价值并在这些值上使用您的范围。或者,如果要进行反规范化,请在名为“USD_price”的Products中引入一个新列,并在其中保存price * conversion的值,这样可以简化并加快速度。但是我必须指出转换率并不总是相同,不确定你是如何处理的。