MySql选择Id< =表中的最大值

时间:2014-06-23 12:25:53

标签: mysql sql

在MySql语句中使用<=时,是否可以使MySql在表中选择最大值而不在sql语句中为<=提供值?

例如:

id
----
1
2
3
4
5
6

例如:

// start from the last record when no value is supplied
select id from table where id <= * ORDER BY id DESC LIMIT 5
Result
6
5
4
3
2

// start from the 5th record when a value is supplied
select id from table where id <= 5 ORDER BY id DESC LIMIT 5
Result 
5
4
3
2
1

我的问题是,这个语句是在php函数中,所以我不能动态地改变它。是否有可能做我正在尝试的事情,或者可能是另一种解决这个问题的方法?

2 个答案:

答案 0 :(得分:1)

您可以使用NULL代替*

SET @var_search_value = NULL -- OR 5

SELECT id 
FROM   table 
WHERE  id <= @var_search_value OR @var_search_value IS NULL 
ORDER BY id DESC LIMIT 5

答案 1 :(得分:0)

如果您希望获得的每条记录小于或等于特定列中的最大值,那么从逻辑上讲,您希望获得每条记录:

select id from table ORDER BY id DESC LIMIT 5

不需要WHERE条款。