2016-04-06 9 views
1

sql sorgusuyla 100 sonuç satırı alıyorum. Bu 100 satırın içinde tek sıra pozisyonunu bilmem gerek. Döngüyü kontrol edebileceğim benzersiz alanlara sahibim, ama bu uzun zaman alıyor. Sorgulanmış sonuç içinde tek öğe pozisyonunu alabilmem için bir yol var mı?SQLite, döngü kullanmadan sonuç sorgusu içinde tek satırlı konum elde edin

Örneğin: Benzersiz kullanıcı kimlikleri (12, 13, 20, 21, 34, 5) olan bir tablom var. Bu kullanıcılar, oluşturulma tarihine göre sıralanır. Sql sorgusu ile id = 34 ile kullanıcı pozisyonunu nasıl alabilirim?

cevap

2

SQL sorgusunun en iyi duruma getirilmesi, her zaman büyük sonuçlarla çalışmanın daha verimli olduğu anlamına gelir.

Eğer Sonra rekor pozisyon seçme yukarıda değeridir birçok kullanıcı istenenden daha az oluşturulma tarihi kimliği sahibi

SELECT 
    count(*) 
FROM 
    table 
WHERE 
    creationDate < (SELECT creationDate FROM table WHERE id = 34) 

kaç kontrol olacağı bir selectwhere ile maddeyi olun (veya gerekecektir ekle 1, 0 veya 1'den sayıyorsanız bağlıdır.


oluşturma tarihi tekrar edilebilir Eğer bu durumun üstesinden gerekecektir Eğer creationDate

+0

Teşekkür ederim, bu sorunumu çözdü. –

0

bu

gibi bir şey deneyebilirsiniz aynı (belki creationDate <= ... sizin için yeterli basittir) ile kayıtları nasıl ele bağlıdır
SELECT row (SELECT ROW_NUMBER() OVER (ORDER BY columnChoosen) AS row, columnChoosen FROM yourTable) sub WHERE sub.columnChoosen = 34 
İlgili konular