2012-04-27 12 views
18

SQLAlchemy में जानबूझकर खाली क्वेरी बनाने का सबसे अच्छा तरीका क्या है?SQLAlchemy: जानबूझकर खाली क्वेरी बनाएं?

उदाहरण के लिए, मेरे पास कुछ फ़ंक्शन हैं जो क्वेरी का निर्माण करते हैं (उदाहरण के लिए WHERE क्लॉज जोड़ना), और कुछ बिंदुओं पर मुझे पता है कि परिणाम खाली होगा।

कोई प्रश्न बनाने का सबसे अच्छा तरीका क्या है जो किसी भी पंक्ति को वापस नहीं करेगा? Django के QuerySet.none() की तरह कुछ।

+0

नकली के साथ नो-पंक्ति-वापसी क्वेरी को प्रतिस्थापित करने का कारण क्या है? क्या आपको अभी भी संरक्षित होने के लिए रिटर्न-टाइप (मैप किए गए ऑब्जेक्ट या इतने) की आवश्यकता है? – van

+1

दो कारण: पहला प्रदर्शन होगा (और एक खाली सूची (पूर्व, 'foo.in _ ([])') के खिलाफ सदस्यता परीक्षण करते समय जारी की गई चेतावनी से बचने के लिए, और दूसरा पठनीयता (पूर्व, ' यदि user.has_no_permissions(): खाली लौटें() ') –

+0

आप खाली 'सूची/tuple' क्यों नहीं लौटते हैं [मेरी पहली टिप्पणी में दूसरा प्रश्न]? – van

उत्तर

20

यदि आपको उचित रिटर्न प्रकार की आवश्यकता है, तो बस session.query(MyObject).filter(sqlalchemy.sql.false()) पर वापस आएं। मूल्यांकन करते समय, यह अभी भी डीबी हिट करेगा, लेकिन यह तेज़ होना चाहिए।

संबंधित मुद्दे