在按另一列排序后选择id之后的记录

时间:2016-04-29 15:28:42

标签: php mysql sql postgresql

我们假设我们有一张按重量排序的表格

  select id, 
         weight
    from TABLE
order by weight

id     weight
---   -------
66     2.50
12    12.00
11    24.00
19    25.00
 6    44.00
 7    45.00
 8    47.00
 9    48.00
10    50.00

我们只想返回大于或等于某个id的权重的记录。 例如,如果我们想要id = 7那么我们将得到

id     weight
---   -------
 7    45.00
 8    47.00
 9    48.00
10    50.00

或换句话说,表的所有记录按权重从id = 7的行开始排序。 我们不想要重量,我们需要ID。

4 个答案:

答案 0 :(得分:3)

我想一个简单的内部查询会:

SELECT `id`
FROM   `TABLE`
WHERE  `weight` >= (SELECT `weight`
                    FROM   `TABLE`
                    WHERE  `id` = 7 
                    LIMIT 1)
ORDER BY `id`

答案 1 :(得分:2)

如果你想体重大于id 7记录,那么这将有效:

  SELECT id, 
         weight 
    FROM TABLE
   WHERE weight >= (SELECT weight 
                      FROM TABLE 
                     WHERE id = 7)
ORDER BY weight

答案 2 :(得分:2)

如果你真的想用JOIN而不是子查询来做这件事:

SELECT t1.id, t1.weight
FROM TABLE AS t1
JOIN TABLE AS t2 ON t1.weight >= t2.weight
WHERE t2.id = 7
ORDER BY t1.weight

答案 3 :(得分:1)

可以使用一个选项完成,但您必须使用用户定义的变量 像这样

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity);
int lastColor = pref.getInt("last_color",0);
view.setBackgroundColor(lastColor);

http://sqlfiddle.com/#!9/4a846/9