2011-03-18 13 views
13

मैं उन सभी उदाहरणों को लाने की कोशिश कर रहा हूं जहां किसी व्यक्ति का पहला नाम पी के बराबर है।MySQL मानदंडों में सबस्ट्रिंग का उपयोग

यह है कि मैं क्या के साथ आया था, जो कुछ भी वापस नहीं करता है:

$sql="SELECT * FROM people WHERE SUBSTRING(FirstName,0,1) = 'P'"; 

सुझाव?

+0

अजीब है, मैं था सोचा है कि काम करेगा। – alex

+11

सबस्ट्रिंग इंडेक्स 1-मूल –

+0

@Alex समान हैं। मुझे पूरी तरह से यकीन नहीं है कि यह क्यों नहीं करता है। LIKE विधि हालांकि काम करती है, लेकिन जो मैंने पढ़ा है, वह सबस्ट्रिंग का उपयोग करने से कम कुशल हो सकता है। – Ian

उत्तर

35
कारण आपकी अभिव्यक्ति काम नहीं करता है

कि सबस्ट्रिंग() पदों 1-आधारित हैं

इनमें से किसी का प्रयास है:

where FirstName like 'P%' 

या

where substring(FirstName,1,1) = 'P' 
+1

मीठे । मुझे डर था कि चरित्र पी के सभी उदाहरण वापस आ जाएंगे, न कि जब यह पहला चरित्र होगा। – Ian

+0

@Ian जो '% P%' ' –

+4

+1 'सिब्स्ट्रिंग' के लिए 1 आधारित इंडेक्स (क्यों?) – alex

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