我想過濾我的表爲一個特定的值。應該總是顯示下一個較低的值。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