上一个/下一个按钮sql查询

时间:2012-01-03 08:56:58

标签: sql limit

我有一个包含以下列的表数据:
| -a-a- | -b- | -text- |
| -1- | -1- | -text- |
| -1- | -2- | -text- |
| -1- | -3- | -text- |
| -2- | -1- | -text- |
| | | | | - 文本 - |
| || | -3- | -text- |
| -2- | -4- | -text- |

e.g。我在第3条记录($ current - in bold ),我需要让sql查询转移到(2,1)。

我的查询如下:

$previous = "SELECT a, b FROM `table` WHERE a <= $current_a AND b < $current_b ORDER BY a DESC, b DESC LIMIT 1";
$next = "SELECT a, b FROM `table` WHERE a >= $current_a AND b > $current_b ORDER BY a ASC, b ASC LIMIT 1";

虽然接下来会转到(2,4)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你需要一个分别处理这两个案件的条件;当 a 值相同时,以及它们不同时:

where (a = @current_a and b > @current_b) or (a > @current_a)

您还需要上一项:

where (a = @current_a and b < @current_b) ro (a < @current_a)