নিয়ম
যখন একটি স্ট্রিং কলামকে সংখ্যায় তুলনা করা হয়, MySQL স্ট্রিংয়ের শুরুতে পূর্ণসংখ্যা থাকলে সেটি পূর্ণসংখ্যায় কনভার্ট করে তুলনা করে। শুধু অক্ষর দিয়ে শুরু হলে ০ হিসেবে বিবেচনা করে।
সারণি ও ডেটা
mysql> create table DemoTable1390 (StudentId varchar(20));
mysql> insert into DemoTable1390 values('563_John'),('1001_Carol_Taylor'),('David_Miller_789'),('456_AdamSmith');
কোয়েরি
mysql> select * from DemoTable1390 where StudentId=456;
ফলাফল
+---------------+ | StudentId | +---------------+ | 456_AdamSmith | +---------------+
ব্যাখ্যা
- '456_AdamSmith' — শুরুতে '৪৫৬' থাকায় ৪৫৬ হিসেবে তুলনা হয়েছে
- 'David_Miller_789' — শুরুতে অক্ষর থাকায় ০ হিসেবে তুলনা হয় (মিলে না)
- চেতাবনি (warnings) দেখাবে:
Truncated incorrect INTEGER value
সেরা অনুশীলন: স্পষ্ট কাস্টিং ব্যবহার করুন: WHERE CAST(StudentId AS UNSIGNED) = 456।