sql - 查询多种币种

标签 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

最佳答案

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/

相关文章:

mysql - 如何在一个查询中使用 Concat() 和 Substring?

java - Controller 方法 java ee sql 未读取表单元素

javascript - MySQL 存储过程使用express.js 返回未定义

mysql - 从 ENUM 列的问题中获取数值

php - 如何使用codeigniter php找到搜索功能最匹配的关键字

sql - 流入数据库 : How to update duration of an existing database

php - 如何获取MYSQL中最近添加的条目的关联唯一ID

android - 为什么我的可搜索 Activity 的 Intent.getAction() 为空?

超出 PHP ldap_search 大小限制

mysql - 使用 REGEXP 在空格分隔列表中查找数字