CONVERT(... USING ASCII) + REPLACE('?', '') দিয়ে নন-এস্কিআই ক্যারেক্টার সরানো
MySQL-এ CONVERT(str USING ASCII) দিয়ে স্ট্রিংকে ASCII-এ কনভার্ট করলে নন-এস্কিআই ক্যারেক্টার (যেমন €, §) '?' চিহ্নে রূপান্তরিত হয়। তারপর REPLACE(..., '?', '') দিয়ে সেগুলো সরিয়ে ফেলা যায়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (Value VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES('€986'), ('§97');
আসল ডেটা
+--------+ | Value | +--------+ | €986 | | §97 | +--------+
ASCII কনভার্ট + '?' সরানো
mysql> SELECT REPLACE(CONVERT(Value USING ASCII), '?', '') FROM DemoTable;
+--------------------------------------------+ | REPLACE(CONVERT(Value USING ASCII), '?', '') | +--------------------------------------------+ | 986 | | 97 | +--------------------------------------------+
ব্যাখ্যা
CONVERT(Value USING ASCII)— '€986' → '?986', '§97' → '?97'।REPLACE(..., '?', '')— সব '?' কে খালি স্ট্রিং দিয়ে রিপ্লেস করে।- ফলাফল: শুধু ASCII ডিজিট (986, 97) থাকে।
সীমাবদ্ধতা
- যদি স্ট্রিংয়ে আসল '?' থাকে, সেটিও মুছে যাবে।
- UTF-8 ডেটার জন্য
CONVERT(... USING UTF8)ব্যবহার করুন। - MySQL 8.0+ এ
REGEXP_REPLACEদিয়ে আরও নিখুঁত ফিল্টারিং করা যায়।