MySQL एक संख्यात्मक संदर्भ में एक स्ट्रिंग के लिए मूक रूपांतरण करता है। क्योंकि यह sum()
. के लिए एक संख्या की अपेक्षा करता है , MySQL केवल एक स्ट्रिंग से अग्रणी "संख्याओं" का उपयोग करके रूपांतरण करता है। ध्यान दें कि इसमें दशमलव बिंदु, ऋण चिह्न और यहां तक कि e
. भी शामिल हैं वैज्ञानिक संकेतन का प्रतिनिधित्व। तो, '1e6'
एक संख्या के रूप में व्याख्या की जाती है।
कोड में, मैं व्यक्तिगत रूप से 0
. जोड़कर रूपांतरण को स्पष्ट कर दूंगा :
SELECT SUM(parametervalue + 0) FROM table
विडंबना यह है कि cast()
यदि स्ट्रिंग एक संख्यात्मक प्रारूप में नहीं है, तो एक त्रुटि लौटा सकती है, लेकिन यह उस स्थिति में कोई त्रुटि नहीं लौटाती है।