Mysql查询和php(循环)获取相应的值

时间:2015-01-15 07:45:23

标签: php mysql

假设我有一个包含pID值和amount值的表,

|   pID     |   amount  |   date        |
|    1      |    20     |   2014-10-1   |
|    1      |    30     |   2014-12-30  |
|    2      |    40     |   2014-10-10  |
|    2      |     3     |   2014-12-01  |

我想同时使用mysql查询和php(循环)来获取与pID相对应的amount,仅针对不同的行只有一个pID

以下是我希望我的回答在

中的方式

对于queryAns 1我选择从2014-10-12014-10-30

的数据
queryAns 1
|   pID     |   amount  |
|    1      |      20   |
|    2      |      40   |

对于queryAns 2我选择从2014-12-12014-12-30

的数据
queryAns 2
|   pID     |   amount  |
|    1      |      30   |
|    2      |       3   |

更新 对不起伙计们,我想我错过了maintable中的约会对象 条件将基于特定的月份和年份。 我还希望根据日期范围查询数据,例如从中选择数据 2014-10-1至2014-10-10

感谢。

2 个答案:

答案 0 :(得分:2)

你可以这样选择:

SELECT
 maintable.pID,
 maintable.amount,
 DATE_FORMAT(maintable.date, '%Y-%m') as date
FROM
 maintable
WHERE
 maintable.date BETWEEN '2014-10-01' AND '2014-10-10'
 OR maintable.date BETWEEN '2014-12-01' AND '2014-12-05'
GROUP BY
 YEAR(maintable.date), MONTH(maintable.date)

答案 1 :(得分:0)

您的第一个查询看起来应该相似: -

SELECT * 
FROM ( SELECT @row := @row +1 AS rownum
       FROM ( SELECT @row :=0) r, mainTable
     ) ranked 
WHERE rownum % n = 1;

第二个应该看起来很像: -

SELECT * 
FROM ( SELECT @row := @row +1 AS rownum
       FROM ( SELECT @row :=0) r, mainTable
     ) ranked 
WHERE rownum % n = 0;