MySql:每个id的位置

MySql:每个id的位置,mysql,sql,Mysql,Sql,我有一个价格表,定义如下: 价格 amount item_id effective_date end_date 项目id不是唯一的,因此我有一个项目列表,我想根据项目的生效日期和结束日期获取相应的金额,我不想查询每个项目,所以我想这样做: SELECT amount WHERE item_id IN (//set of ids) WHERE ? 那么如何为每个id指定日期条件呢?甚至有可能吗 编辑 下面是一个示例代码 amount item_is effective_date

我有一个价格表,定义如下:

价格

amount
item_id
effective_date
end_date
项目id不是唯一的,因此我有一个项目列表,我想根据项目的生效日期和结束日期获取相应的金额,我不想查询每个项目,所以我想这样做:

SELECT amount WHERE item_id IN (//set of ids) WHERE ?
那么如何为每个id指定日期条件呢?甚至有可能吗

编辑

下面是一个示例代码

amount    item_is    effective_date    end_date
125.00    5          12/12/2015        01/03/2016
60.00     5          03/05/2015        12/12/2015
20.00     1          04/06/2015        01/09/2016
100.00    4          01/12/2015        01/03/2017
40.00     4          12/12/2014        01/03/2015
130.00    1          01/11/2010        01/06/2012

假设我想要第一个项目4和最后一个项目1,在一个查询中,如何使用和添加更多条件来实现这一点

SELECT amount WHERE item_id IN (//set of ids) AND efective_date = SomeDate
如果有不同的条件,请不要在中使用

SELECT amount
FROM YourTable
WHERE (item_iS = 4 AND efective_date = CAST('01/12/2015' AS DATE)
      AND / OR
      (item_iS = 1 AND efective_date = CAST('01/11/2010' AS DATE)

每个项目的日期范围是否不同?如果您不能对项目使用IN子句,则需要为每个项目和范围编写单独的查询

如果您只需要给定日期范围内的最新或所有价格变化,您可以这样做

SELECT item_id, effective_date, end_date, amount WHERE item_id IN (//set of ids) AND effective_date <= adate and end_date >= samedate.

能否显示一些示例数据和预期的输出?IN子句支持多列,但不经常使用。这可能对你有用,但不清楚你需要什么,比如“val1”、“val2”、“val3”、“val4”中的col1、col2。请展示一个示例。我添加了一些示例每个项目都有自己的日期,我添加了一个示例您可以使用和/或