检索特定行的SQL问题

时间:2011-10-20 00:42:28

标签: php sql

我有一个关于我的SQL查询的问题似乎正在播放。

我完全准备承认我正在使用的代码中的任何错误,但我无法解决我的生活中找出正在发生的事情

以下是我的表格:

id    groupingid    groupid    timeadded
------------------------------------------
1     1              4         1318200332
2     2              2         1318200346
3     3              1         1318200362
4     4              3         1318200388
5     5              6         1318217398
6     7              7         1318217402
7     8              8         1318217408
8     6              5         1318217413
9     9              9         1318217417
10    5              7         1319007223
65    14             14        1319068963
64    11             15        1319068950
62    10             15        1319068921
63    13             14        1319068950
61    12             14        1319068887
60    11             14        1319068850
59    10             14        1319068847
70    12             15        1319069000

我想做的就是返回任何一行'groupid'为15,然后用最高'groupingid'隔离行

因此我使用以下sql_query

SELECT * 
FROM `mdl_groupings_groups` 
WHERE groupid = 15 
ORDER BY MAX('groupingid')

它一直在回归:

id  groupingid      groupid timeadded
------------------------------------------
64  11              15      1319068950

然而它应该返回id为70的行

请告诉我,由于我处于紧迫的截止日期并且不知道这里有什么问题,我错过了什么完全错误的事情。

如果格式不正确并在需要时熄火,我很抱歉..

由于

2 个答案:

答案 0 :(得分:6)

两件事:

  • 使用ORDER BY ... DESC代替ORDER BY MAX(...)
  • 请勿将列名groupingid放在单引号中。

试试这个:

SELECT *
FROM mdl_groupings_groups
WHERE groupid = 15
ORDER BY groupingid DESC
LIMIT 1

答案 1 :(得分:0)

试试这个:

select * from mdl_groupings_group
WHERE groupingID IN 
(
SELECT max(groupingID) as TheMax
FROM `mdl_groupings_groups` 
WHERE groupid = 15 
) xx
ORDER BY groupingID DESC
LIMIT 1