2014-09-04 243 views
-1

我有表MYSQL選擇查詢使用where子句

  
itemuid | category 
----------------------------- 
1   | 3 
2   | 3 
3   | 21 
4   | 3 
5   | 3 
6   | 21 
7   | 3 
----------------------------- 

我現在想itemuid5前選擇itemuidcategory21itemuid是我需要向後搜索的唯一信息。

任何人都可以告訴我selectwhere查詢必須看起來像嗎?謝謝。

+0

您確定這個例子足以代表當前的問題嗎? – Strawberry 2014-09-04 10:26:06

+0

你確定你不是指'itemuid 6之前'嗎? (否則,'5'會在哪裏神奇地來自哪裏?) – 2014-09-04 10:28:40

回答

-2

如果我正確理解你,這應該工作:

SELECT itemuid FROM table_name WHERE category=21 and itemuid < 5 
-1

如果 「前」 是指最大itemuid這仍然是小於5,則:

select max(itemuid) from tablename where itemuid < 5 and category = 21 
0
SELECT itemuid from notablenameinquestion where category=21 AND itemuid < 5 order by itemuid LIMIT 1; 
0
SELECT s.itemuid 
    FROM (SELECT itemuid 
      FROM yourTable 
      WHERE yourConditions 
      ORDER BY category DESC) s 
    WHERE ROWNUM = 1 
+2

無需在MySQL中進行子查詢,您可以簡單地使用LIMIT 1來獲得最高的一個。 Oracle背景? – dwjv 2014-09-04 10:27:10

+0

查詢您的信息 – mugiwaradz 2014-09-04 10:28:21

1
SELECT * FROM table 
    WHERE itemuid < 5 AND category = 21 
    ORDER BY itemuid DESC 
    LIMIT 1 
0

如果我理解正確:

Select Top(1) itemid from table_name where categoryid=21 and itemid<5