কম্পিউটার টিউটোরিয়াল

MySQL কলাম থেকে ব্যাকস্ল্যাশযুক্ত মান (যেমন 'a\\b') কীভাবে ম্যাচ করবেন?


RLIKE অপারেটর দিয়ে এই ধরনের ম্যাচিং করা যায়। মূল বিষয় হলো MySQL কোয়েরিতে কতগুলো ব্যাকস্ল্যাশ ব্যবহার করা উচিত। নিচের উদাহরণ থেকে এটি স্পষ্ট হবে:

নিচের টেবিলে 'a\b' এবং 'a\\b' মান রয়েছে:

mysql> select * from backslashes; 
+------+-------+
| Id   | Value |
+------+-------+
|    1 | 200   |
|    2 | 300   |
|    4 | a\\b  |
|    3 | a\b   |
+------+-------+
4 rows in set (0.10 sec)

এখন 'a\\b' মান ম্যাচ করতে চাইলে আটটি ব্যাকস্ল্যাশ লিখতে হয়। কারণ দ্বিতীয় ব্যাকস্ল্যাশ প্রথমটি দ্বারা এস্কেপ হয় না, তাই দুটি লিটারেল তুলনা করতে ব্যাকস্ল্যাশ ডাবল করতে হয়। কিন্তু MySQL স্ট্রিং থেকে টেবিল কোয়েরি করলে এই ডাবলিং দুবার হয়—একবার ক্লায়েন্টে এবং একবার ডাটাবেসে। তাই চারগুণ ব্যাকস্ল্যাশ লাগে:

mysql> Select * from backslashes where value RLIKE 'a\\\\\\\\b'; 
+------+-------+
| Id   | Value |
+------+-------+
|    4 | a\\b  |
+------+-------+
1 row in set (0.00 sec)
mysql> Select * from backslashes where value RLIKE 'a\\\\b'; 
+------+-------+
| Id   | Value |
+------+-------+
|    3 | a\b   |
+------+-------+
1 row in set (0.01 sec)

  1. MySQL-এ UPDATE দিয়ে বুলিয়ান মান আপডেট করা

  2. MySQL-এ একই পরিমাণ সব রো থেকে বিয়োগ করা (SELECT Kolkata-20)

  3. MySQL-এ কলাম ভ্যালুতে যেকোনো একটি স্ট্রিং ম্যাচ করানো (OR 조건)

  4. MySQL-এ EXISTS সাবকোয়েরি ব্যবহার করে অন্য টেবিলের সাথে ম্যাচ করা রো সিলেক্ট করা