2011-12-18 15 views
34

मुझे डीबी से अंतिम रिकॉर्ड प्राप्त करने की आवश्यकता है। मैं sqlalchemy का उपयोग कर रहा हूँ। फिलहाल, मैं उस तरह कर रहा हूँ:अंतिम रिकॉर्ड कैसे प्राप्त करें

obj = ObjectRes.query.all() 
return str(obj[-1].id) 

लेकिन यह बहुत भारी क्वेरी है। मैं अंतिम रिकॉर्ड कैसे बेहतर प्राप्त कर सकता हूं?

उत्तर

76

Query.first() पर एक नज़र डालें। यदि आप सही कॉलम पर sort निर्दिष्ट करते हैं, तो पहला आपका अंतिम होगा। एक उदाहरण ऐसा दिखाई दे सकता:

obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first() 
+24

धन्यवाद! 'ObjectRes.query.order_by ('- id')। पहला()' – dimazubrik

2

कभी कभी यह साधारण चीजें धूमिल करने के लिए मुश्किल है:

SELECT * FROM ObjectRes WHERE id IN (SELECT MAX(id) FROM ObjectRes) 

लेकिन यह मेरे लिए काम किया:

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id))) 
संबंधित मुद्दे