2009-09-24 49 views
1

如何從表中獲取第n行的位置而不使用限制?如何從表中獲取第n行的位置而不使用限制?

我有一個表有四個字段ID,名稱,國家,描述。查詢返回條件country = 'asia'。記錄總數超過了一百個。現在我需要的是,如果我有一個名字「測試」在表中的第23位,那麼我怎麼能得到位置23rd沒有使用限制和自動增量ID(自動ID不會給出我使用條件的確切位置我的查詢)

name不應該包含重複記錄。

我只是想通過另一個查詢(分頁)檢查位置。

是否有任何可用的mysql函數來實現這與使用限制?

我已經通過this得到了一些想法,但我無法通過答案得到我預期的mysql結果。

謝謝。

回答

2

由於SQL不具有隱式「行位置」的概念,所以應該通過對列或表達式的行進行排序來定義行順序。

這假定您的行位置由字段id(即稍後更高的行更高的行)標識。

SELECT (
     SELECT COUNT(*) 
     FROM mytable mi 
     WHERE country = 'asia' 
       AND mi.id <= mo.id 
     ) 
FROM mytable mo 
WHERE country = 'asia' 
     AND name = 'test' 
+0

正是我所期望的。謝謝。 – Paulraj 2009-09-24 14:39:37