SQL क्वेरी जहाँ फ़ील्ड में $ x नहीं है


132

मैं उन पंक्तियों को खोजने के लिए SQL क्वेरी खोजना चाहता हूँ जहाँ फ़ील्ड 1 में $ x नहीं है। मैं यह कैसे कर सकता हूँ?


क्या मैं समान जांच करने के लिए CONTAINS () फ़ंक्शन (sql) का उपयोग कर सकता हूं?
केट

जवाबों:


291

यह किस तरह का क्षेत्र है? IN ऑपरेटर का उपयोग किसी एक क्षेत्र के साथ नहीं किया जा सकता है, लेकिन इसका उपयोग उपश्रेणियों में या पूर्वनिर्धारित सूचियों के साथ किया जा सकता है:

-- subquery
SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y);
-- predefined list
SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);

यदि आप एक स्ट्रिंग खोज रहे हैं, तो LIKE ऑपरेटर के लिए जाएं (लेकिन यह धीमा होगा):

-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';

यदि आप इसे प्रतिबंधित करते हैं ताकि आप जिस स्ट्रिंग को खोज रहे हैं, उसे दिए गए स्ट्रिंग से शुरू करना पड़े, तो यह सूचकांकों का उपयोग कर सकता है (यदि उस फ़ील्ड पर कोई इंडेक्स है) और यथोचित रूप से तेज़ हो:

-- Finds all rows where a does not start with "text"
SELECT * FROM x WHERE x.a NOT LIKE 'text%';

1
xb क्या है? आपके पत्र बहुत ही भ्रमित करने वाले हैं। मैं तालिका या फ़ील्ड का उपयोग करने की सलाह देता हूं।
व्हिटेकैट

सुनिश्चित करें कि यदि आप इसके लिए एक उपश्रेणी का उपयोग करते हैं तो NOT INकोई भी मान NULL नहीं होगा, क्योंकि IN और NULL एक स्पष्ट तरीके से गठबंधन नहीं करते हैं यदि आप तीन-मूल्यवान तर्क से परिचित नहीं हैं। यहाँ आप उपयोग करेंगे SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y WHERE b IS NOT NULL); यदि आपको NULL मानों को भी अलग करने की आवश्यकता है, तो आपको यह करने की आवश्यकता होगी:SELECT a FROM x WHERE x.b NOT IN (SELECT b FROM y WHERE b IS NOT NULL) AND x.b IS NOT NULL;
बेकन बिट्स

17

SELECT * FROM table WHERE field1 NOT LIKE '%$x%'; (सुनिश्चित करें कि आप SQL इंजेक्शन से बचने के लिए पहले से ठीक से $ x बच गए हैं)

संपादित करें: NOT INकुछ अलग करता है - आपका प्रश्न पूरी तरह से स्पष्ट नहीं है, इसलिए इसका उपयोग करने के लिए कौन चुनें। LIKE 'xxx%'एक सूचकांक का उपयोग कर सकते हैं। LIKE '%xxx'या LIKE '%xxx%'नहीं कर सकते।


क्या ठीक से भागने से माना जाता है? मुझे पता है कि सामान्य तार के साथ आपको केवल कुछ चीजों से बचना होगा, लेकिन LIKE के पास कुछ अतिरिक्त विशेष पात्र हैं।
पीटर बॉस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.