我有一个名为price
的列,我想输入一个价格并获得下一个最昂贵的物品,或者如果输入的价格超出了表中可用的范围,最昂贵的物品。如何在同一列上有多个OR条件
例如我有以下的项目在我的表
id category price
1 Toys 12
2 Toys 14
3 Toys 18
4 Toys 40
5 Toys 38
6 Toys 67
所以,如果我输入20,我想的玩具数量5(价格38)返回,因为这是下一个大数目。如果我输入超出表格范围的价格,例如100那我想最昂贵的项目要返回,即玩具6号
目前,我有一个查询类似
select *
from items
where category = ? and price > ?
order by price limit 1;
这将返回下一个最昂贵的玩具或任何其他类别的任何其他项目但如果我输入100,那么我将如何显示最昂贵的物品?我可以在价格栏上有多个or
吗?
重要:我想做到这一点,而无需使用合并或者空的条件,如果可能的
@GrodonLinoff太感谢你了,第一个不知何故似乎并没有为我工作..让我尝试第二个。 –
@ john.p.doe。 。 。请注意,通配符的数量已更改。 –
将查询更改为此可为我提供所需的结果。如果我做错了任何事,请纠正我。 (价格>?)desc,(当价格>?则价格结束时)asc,price desc limit 1; –