返回下一个结果

时间:2014-09-27 19:29:57

标签: php mysql sql sorting

我有一张类似下面的表。

id  | episode_number

1        55
2        56
3        57-58
4        59
5        60
6        61-62
7        63
8        64
9        65-66
10       67-68

我的目标是,每当选择某一集时。我想返回接下来的5个结果。可以说,如果选择了episode_number 60,我想返回接下来的5个结果

id  | episode_number
6        61-62
7        63
8        64
9        65-66
10       67-68

我通过以下声明实现了这一点,一切都很有效。

$query = $PDO -> prepare("SELECT * FROM table
                          WHERE `table`.episode_number > :episode
                          ORDER BY (`table`.episode_number + 0)
                          LIMIT 5");

$query->bindValue(':episode', 60, PDO::PARAM_INT);

但是如果选择的剧集不是INT但实际上是STR呢?如61-62,我将如何返回它的下5个结果?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了问题,当你有一个字符串时,你就会在“下一个”列表中获得该值,而不是“下一个”值。如果这是问题,这有两种方法可以解决它:

SELECT *
FROM table
WHERE `table`.episode_number + 0 > :episode
ORDER BY (`table`.episode_number + 0)
LIMIT 5;

或:

SELECT *
FROM table
WHERE `table`.episode_number >= :episode
ORDER BY (`table`.episode_number + 0)
LIMIT 5 OFFSET 1;