我需要在数据库中存储多种货币...问题如下:
示例表:
[ 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
最佳答案
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),这样换算为美元时也不异常(exception)。
关于sql - 查询多种币种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743667/