केवल एक बार मैंने पाया है कि एक पूर्णांक पैरामीटर का उपयोग करना महत्वपूर्ण है LIMIT
. में है खंड।
SELECT
...
LIMIT ?, ?
MySQL इस संदर्भ में उद्धृत स्ट्रिंग अक्षर को स्वीकार नहीं करता है, और स्ट्रिंग प्रकार के साथ पैरामीटर स्वीकार नहीं करता है। आपको एक पूर्णांक का उपयोग करना होगा।
देखें पैरामीट्रिज्ड पीडीओ क्वेरी और `LIMIT` क्लॉज - काम नहीं कर रहा है इस पर मेरे परीक्षणों के लिए। यह पीडीओ के बारे में एक सवाल था, और मैंने mysqli का परीक्षण नहीं किया, लेकिन मेरा मानना है कि इस मामले में पूर्णांक पैरामीटर का उपयोग करने के लिए यह सर्वर-साइड MySQL आवश्यकता है। तो यह mysqli पर भी लागू होना चाहिए।
अन्य सभी मामलों (AFAIK) में, MySQL स्ट्रिंग में प्रमुख अंकों को पढ़कर और किसी भी निम्नलिखित वर्णों को अनदेखा करके स्ट्रिंग्स को पूर्णांक में बदलने में सक्षम है।
@Dharman नीचे एक टिप्पणी में ORDER BY
में पूर्णांकों के लिए MySQL के समर्थन का संदर्भ देता है :
SELECT
...
ORDER BY ?
ORDER BY
. में एक पूर्णांक उस स्थिति में कॉलम के आधार पर छाँटने का मतलब है, संख्या के स्थिर मान से नहीं:
SELECT
...
ORDER BY 1 -- sorts by the 1st column
लेकिन उस संख्या वाले समकक्ष स्ट्रिंग मान समान कार्य नहीं करता है। यह स्ट्रिंग के निरंतर मान के आधार पर छाँटता है, जिसका अर्थ है कि प्रत्येक पंक्ति बंधी हुई है, और क्रमबद्ध क्रम मनमाना होगा।
SELECT
...
ORDER BY '1' -- sorts by a constant value, so all rows are tied
इसलिए यह एक और मामला है जहां क्वेरी पैरामीटर के लिए डेटा प्रकार महत्वपूर्ण है।
दूसरी ओर, ORDER BY
में उस स्थिति में कॉलम द्वारा क्रमबद्ध करने के लिए क्रमिक संख्याओं का उपयोग करना या GROUP BY
बहिष्कृत है, और हमें SQL के उस उपयोग पर भरोसा नहीं करना चाहिए।