MySQL-এ SUBSTR() ও INSTR() দিয়ে দশমিক স্থান গণনা
যদি কলামটি VARCHAR টাইপের হয় এবং সেখানে ২টির বেশি দশমিক স্থানযুক্ত মান খুঁজে বের করতে হয়, তবে SUBSTR() এবং INSTR() ফাংশন কম্বাইন করে ব্যবহার করা যায়।
সিনট্যাক্স
SELECT * FROM yourTableName WHERE LENGTH(SUBSTR(yourColumnName, INSTR(yourColumnName, '.'))) > 3;
উদাহরণ সহ ব্যাখ্যা
টেবিল তৈরি:
mysql> CREATE TABLE selectRows2DecimalPlacesDemo (
-> Amount VARCHAR(100)
-> );
ডেটা ইনসার্ট:
mysql> INSERT INTO selectRows2DecimalPlacesDemo VALUES('234.5678');
mysql> INSERT INTO selectRows2DecimalPlacesDemo VALUES('19.50');
mysql> INSERT INTO selectRows2DecimalPlacesDemo VALUES('23.456');
mysql> INSERT INTO selectRows2DecimalPlacesDemo VALUES('12.123');
সব ডেটা দেখি:
mysql> SELECT * FROM selectRows2DecimalPlacesDemo;
+----------+ | Amount | +----------+ | 234.5678 | | 19.50 | | 23.456 | | 12.123 | +----------+
২টির বেশি দশমিক স্থান والے রো খুঁজে বের করি:
mysql> SELECT * FROM selectRows2DecimalPlacesDemo
-> WHERE LENGTH(SUBSTR(Amount, INSTR(Amount, '.'))) > 3;
ফলাফল:
+----------+ | Amount | +----------+ | 234.5678 | | 23.456 | | 12.123 | +----------+
ব্যাখ্যা: INSTR(Amount, '.') দশমিক চিহ্নের পজিশন বের করে। SUBSTR() সেখান থেকে শেষ পর্যন্ত নেয়। LENGTH() সেটির দৈর্ঘ্য বের করে। দশমিক চিহ্ন সহ ৩-এর বেশি মানে ২টির বেশি দশমিক অঙ্ক।
নোট: সংখ্যাসূচক কলামে (DECIMAL/FLOAT) এই পদ্ধতি কাজ নাও করতে পারে। সেক্ষেত্রে গাণিতিক পদ্ধতি ব্যবহার করতে হয়।