आप प्रकार मिश्रण कर रहे हैं। ID
एक पूर्णांक (या संख्या) है। आप इसकी तुलना एक स्ट्रिंग से कर रहे हैं। तो, MySQL को यह तय करने की आवश्यकता है कि तुलना के लिए किस प्रकार का उपयोग करना है। किस प्रकार का उपयोग किया जाता है? अच्छा, एक स्ट्रिंग? नहीं, एक नंबर। प्रमुख अंकों का उपयोग करके स्ट्रिंग को एक संख्या में बदल दिया जाता है। तो, यह हो जाता है 101
और मैच।
आपको वास्तव में केवल संख्याओं की तुलना संख्याओं से और स्ट्रिंग्स की स्ट्रिंग्स से करनी चाहिए। आप कोड को इस प्रकार लिखने का प्रयास कर सकते हैं:
SELECT * FROM tableName WHERE ID = 101foo2
हालाँकि, आपको एक त्रुटि मिलेगी। एक और संभावना है कि रूपांतरण को एक स्ट्रिंग में बाध्य किया जाए:
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'