2011-06-13 18 views
5

sayısının sınırlandırılması bir SQLite3 SELECT ekstresinden isabet sayısını sınırlamak için temiz bir yolu var mı? Örneğin, binlerce isabetle karşılaşabileceğimin farkına vardığımda, SELECT * FROM myTable WHERE name='Smith'; ile sorgulayabilirim. SQLite3'ün, karşılaştığı ilk 10'yu söylemesini ve sorguyu sonlandırmasını istiyorum. Bunu nasıl yaparım? SQLite3 hemen bu sağlamazsaSQLite3 ve sonuçların

, ben yeniden alabileceğiniz SQLite3 kaynak kodunda düzenleyebilirsiniz şey var mı?

Ben sadece bir dişe sahip bir ortamda değilim varsayalım ve geri makul bir süre içinde kontrol istiyorum.

SELECT * FROM myTable WHERE name='Smith' LIMIT 10 
+0

@all: teşekkürler - cevaplar her birini kabul etmek istiyorum. – SK9

cevap

10

Sen LIMIT maddesi aradığınız çok OFFSET de

select * from sometable where .... limit 10; 

Bak, çağrı sonuçları için yararlı olabilir: bir LIMIT kelime var . (Eğer çok sorguda tutarlı sonuçlar istiyorsanız Ayrıca bu genellikle ORDER BY maddesi ile birleştirilir.) SQLite docs itibaren

3

: LIMIT deyimi tarafından döndürülen satır sayısına bir üst sınır yerleştirmek için kullanılır

bir SELECT ifadesi. Herhangi bir skaler ifade, bir tamsayıya veya kayıpsız olarak bir tamsayıya dönüştürülebilen bir değere değer verdiği sürece LIMIT deyiminde kullanılabilir. İfade bir NULL değerine veya bir tamsayıya kayıpsız dönüştürülemeyen başka bir değere değerlendirirse, bir hata döndürülür. LIMIT ifadesi negatif bir değer olarak değerlendirilirse, döndürülen satırların sayısı üzerinde üst sınır yoktur. Aksi takdirde, SELECT yalnızca sonuç kümesinin ilk N satırını döndürür, burada N LIMIT ifadesinin değerlendirdiği değerdir. Veya, SELECT deyimi bir LIMIT yan tümcesi olmadan N satırından daha az döndürürse, sonuç kümesinin tamamı döndürülür.