Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL:क्या हमें किसी/कुछ और सभी कीवर्ड की आवश्यकता है?

जब आप केवल समानता या असमानता का परीक्षण नहीं कर रहे हैं, तो मुझे कोई भी और सभी बहुत उपयोगी लगते हैं। विचार करें

'blah' LIKE ANY (ARRAY['%lah', '%fah', '%dah']);

जैसा कि इस प्रश्न के लिए मेरे उत्तर का उपयोग किया गया है

ANY , ALL और उनके निषेध कोड को बहुत सरल कर सकते हैं जिसके लिए अन्यथा गैर-तुच्छ उपश्रेणियों या सीटीई की आवश्यकता होती है, और वे मेरे विचार में काफी कम उपयोग किए जाते हैं।

उस पर विचार करें ANY किसी भी ऑपरेटर के साथ काम करेगा। यह LIKE . के साथ बहुत आसान है और ~ , लेकिन tsquery, सरणी सदस्यता परीक्षण, hstore कुंजी परीक्षण, और बहुत कुछ के साथ काम करेगा।

'a => 1, e => 2'::hstore ? ANY (ARRAY['a', 'b', 'c', 'd'])

या:

'a => 1, b => 2'::hstore ? ALL (ARRAY['a', 'b'])

बिना ANY या ALL आपको शायद उन्हें VALUES . पर एक सबक्वायरी या CTE के रूप में व्यक्त करना होगा एक परिणाम उत्पन्न करने के लिए कुल मिलाकर सूची। ज़रूर, अगर आप चाहें तो ऐसा कर सकते हैं, लेकिन मैं ANY के साथ रहूंगा ।

यहां एक वास्तविक चेतावनी है:पुराने पीजी संस्करणों पर, यदि आप ANY( SELECT ... ) लिख रहे हैं , आप लगभग निश्चित रूप से EXISTS (SELECT 1 FROM ... WHERE ...) के साथ प्रदर्शन के मामले में बेहतर होने जा रहे हैं . यदि आप ऐसे संस्करण पर हैं जहां अनुकूलक ANY (...) शामिल हों तो आपको चिंता करने की आवश्यकता नहीं है। यदि संदेह है, तो EXPLAIN देखें आउटपुट।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वेब सर्वर को डेटाबेस और J2ME से कनेक्ट करें

  2. मैसकल कनेक्टर - एकाधिक एक्टिव रिसेटसेट समस्या

  3. कोड या डेटाबेस में कैलकुलेशन सेव करें?

  4. MySQL - क्या प्रत्येक तालिका में इसका अपना आईडी/प्राथमिक कॉलम होना चाहिए?

  5. कॉन्फ़िगरेशन त्रुटि अपवाद MySQL इकाई फ्रेमवर्क के साथ कंसोल ऐप चलाने की कोशिश में 6