2009-12-16 9 views
12

की शुरुआत को छोड़कर किसी भी स्थान पर किसी सबस्ट्रिंग को खोजने के लिए MySQL LIKE कथन मेरे पास एक SQL क्वेरी SELECT * FROM table WHERE column LIKE '%pdd%' है।स्ट्रिंग

समस्या यह है कि मुझे "pdd" से शुरू होने वाले सभी परिणामों को छोड़कर सभी परिणामों को प्राप्त करने की आवश्यकता है, जिसके द्वारा मेरा मतलब है कि "pdd" शुरुआत में नहीं है। यह कैसे किया जा सकता है?

मुझे कॉलम की शुरुआत में नहीं होने पर "pdd" से मिलान करने की आवश्यकता है।

उत्तर

22

मुझे लगता है आप सभी पंक्तियां को छोड़कर "PDD" से मेल जहाँ "PDD" शुरुआत में है मतलब है।

SELECT * FROM table WHERE column LIKE '_%pdd%'. 

"_" LIKE विधेय में वाइल्डकार्ड का अर्थ है "किसी भी चरित्र से एक," नियमित अभिव्यक्ति में "." के बराबर है।

+0

क्षमा करें लेकिन नहीं। यह 'pdd हैलो pdd' जैसे मामलों में काम नहीं करेगा क्योंकि पहला पी' _' से मेल खाता है और बाकी स्ट्रिंग (अन्य '' pdd "' सहित) '% pdd%' से मेल खाएगा। ओपी ने कभी यह नहीं बताया कि "पीडीडी" स्ट्रिंग हमेशा स्ट्रिंग के बीच अद्वितीय होगी, इसलिए इसके कई ओकुरेंस, जहां उनमें से एक शुरुआत में है, इस समाधान को काम नहीं करेगा। ओपी, इस उत्तर को अस्वीकार करने पर विचार करें (जैसा कि यह गलत है) और quosoo या मार्क द्वारा स्वीकार कर रहे हैं। – DiegoDD

+0

@DiegoDD, यह एक अच्छा मुद्दा है, मैंने दो बार होने वाले पैटर्न की संभावना को नजरअंदाज कर दिया। यह एक पुराना सवाल है, मुझे इस मामले पर ओपी से सुनने में दिलचस्पी होगी। लेकिन चूंकि उन्होंने इसे स्वीकार कर लिया, इसलिए मुझे लगता है कि यह उन मामलों के लिए काम करता है जिनकी उन्हें आवश्यकता थी। –

+0

मैं इस तथ्य से सहमत हूं कि ओपी ने इसे उपयोगी पाया है और इसमें कोई समस्या नहीं है, लेकिन चूंकि यह एक सामुदायिक साइट है, इसलिए आप इस स्थिति को संपादित कर सकते हैं कि यह इस तरह के मामले पर काम नहीं करेगा, क्योंकि अन्य लोगों की संभावना है उत्तर ढूंढें (जैसे मैंने किया), और एक पुराना सवाल होने से यह कम उपयोगी या वैध नहीं होता है। उत्तर के लिए धन्यवाद। – DiegoDD

0

प्रयास करें:

SELECT * FROM table WHERE column NOT LIKE 'pdd%' 
+1

ओपी कॉलम की शुरुआत को छोड़कर 'pdd' से मेल खाना चाहता है - यह ऐसा नहीं करेगा ... –

+0

समझ के लिए पढ़ा –

5

अगर मैं आपकी आवश्यकता को समझने सही ढंग से तुम क्या जरूरत है:

SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%' 
4
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%' 

आप कैसे लगातार इन घटनाओं अपनी तालिका में हैं पर निर्भर करता है क्वेरी अनुकूलन कर सकते हैं।

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

  • कोई संबंधित समस्या नहीं^_^