itemuid | category ----------------------------- 1 | 3 2 | 3 3 | 21 4 | 3 5 | 3 6 | 21 7 | 3 -----------------------------
我現在想itemuid
5
前選擇itemuid
與category
21
。 itemuid
是我需要向後搜索的唯一信息。
任何人都可以告訴我select
和where
查詢必須看起來像嗎?謝謝。
itemuid | category ----------------------------- 1 | 3 2 | 3 3 | 21 4 | 3 5 | 3 6 | 21 7 | 3 -----------------------------
我現在想itemuid
5
前選擇itemuid
與category
21
。 itemuid
是我需要向後搜索的唯一信息。
任何人都可以告訴我select
和where
查詢必須看起來像嗎?謝謝。
如果我正確理解你,這應該工作:
SELECT itemuid FROM table_name WHERE category=21 and itemuid < 5
如果 「前」 是指最大itemuid
這仍然是小於5,則:
select max(itemuid) from tablename where itemuid < 5 and category = 21
SELECT itemuid from notablenameinquestion where category=21 AND itemuid < 5 order by itemuid LIMIT 1;
SELECT s.itemuid
FROM (SELECT itemuid
FROM yourTable
WHERE yourConditions
ORDER BY category DESC) s
WHERE ROWNUM = 1
無需在MySQL中進行子查詢,您可以簡單地使用LIMIT 1來獲得最高的一個。 Oracle背景? – dwjv 2014-09-04 10:27:10
查詢您的信息 – mugiwaradz 2014-09-04 10:28:21
SELECT * FROM table
WHERE itemuid < 5 AND category = 21
ORDER BY itemuid DESC
LIMIT 1
如果我理解正確:
Select Top(1) itemid from table_name where categoryid=21 and itemid<5
您確定這個例子足以代表當前的問題嗎? – Strawberry 2014-09-04 10:26:06
你確定你不是指'itemuid 6之前'嗎? (否則,'5'會在哪裏神奇地來自哪裏?) – 2014-09-04 10:28:40