我想过滤我的表为一个特定的值。应该总是显示下一个较低的值。MySQL选择查询返回错误的行
+----+-----------+-------+------------+
| id | productid | lvl | value |
+----+-----------+-------+------------+
| 2 | 7 | 10 | 100 |
| 3 | 7 | 5 | 50 |
| 6 | 7 | 1 | 25 |
+----+-----------+--
如果我搜索lvl 6,应该输出5级。如果我搜索等级14,应该输出lvl 10。
已经尝试了以下查询,但没有一个按照我的要求工作。作为例子此查询过4.适用于价值如果我使用下4的值,我需要改变递减到递增,以获得正确的结果:
SELECT * FROM `levels` where lvl <= '6' ORDER BY lvl desc limit 1
请告诉我得到返回的正确方法下一个较低(或等于)与SQL查询行?
你在做什么是以前最大的,什么是拉特的数据类型? –
lvl <= 4'应该输出什么? – peterm
如果'lvl'字段是VARCHAR或CHAR数据类型,则需要将它CAST到数字以进行排序以及可能的比较。 – Uueerdo