在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函数中,所以我不能动态地改变它。是否有可能做我正在尝试的事情,或者可能是另一种解决这个问题的方法?
答案 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
条款。