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

MySQL-এ FALSE (০) ব্যবহার করে স্ট্রিং ম্যাচিংয়ের আচরণ বোঝা

MySQL-এ FALSE হলো 0। যখন একটি স্ট্রিংকে সংখ্যায় কনভার্ট করা হয় (যেমন 0 + 'abc'), তবে শুরুতে সংখ্যা না থাকলে ফলাফল 0 হয়।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE DemoTable804 (Id VARCHAR(100));
Query OK, 0 rows affected (0.66 sec)
mysql> INSERT INTO DemoTable804 VALUES ('101John');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable804 VALUES ('Carol1002');
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable804 VALUES ('1000');
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable804 VALUES ('1010Bob');
Query OK, 1 row affected (0.10 sec)

রেকর্ড দেখানো

mysql> SELECT * FROM DemoTable804;

আউটপুট:

+-----------+
| Id        |
+-----------+
| 101John   |
| Carol1002 |
| 1000      |
| 1010Bob   |
+-----------+
4 rows in set (0.00 sec)

0 যোগ করে স্ট্রিংকে সংখ্যায় কনভার্ট

mysql> SELECT 0 + Id FROM DemoTable804;

ফলাফল (ওয়ার্নিংসহ):

+------+
| 0+Id |
+------+
| 101  |
| 0    |
| 1000 |
| 1010 |
+------+
4 rows in set, 2 warnings (0.00 sec)

ব্যাখ্যা

  • '101John' -> শুরুতে '101' পাওয়া গেলে ১০১ রিটার্ন করে।
  • 'Carol1002' -> শুরুতে অক্ষর, তাই ০ রিটার্ন করে (ওয়ার্নিং: Truncated incorrect INTEGER value)।
  • '1000' -> পুরো সংখ্যা, ১০০০ রিটার্ন করে।
  • '1010Bob' -> শুরুতে '1010' পাওয়া গেলে ১০১০ রিটার্ন করে।

ব্যবহারিক টিপস

  • স্ট্রিং থেকে সংখ্যা বের করতে CAST(str AS UNSIGNED) বা CONVERT(str, UNSIGNED INTEGER) ব্যবহার করুন।
  • REGEXP দিয়ে সংখ্যা অংশ বের করা যায়: CAST(REGEXP_SUBSTR(str, '[0-9]+') AS UNSIGNED) (MySQL 8.0+)
  • Boolean কনটেক্সটে খালি স্ট্রিং, '0', NULL, 0 সব FALSE।
  1. MySQL-এ FIND_IN_SET() দিয়ে কমা-সেপারেটেড লিস্টে মান খুঁজে বের করা

  2. MySQL রেগুলার এক্সপ্রেশন: স্ট্রিংয়ে অঙ্ক (ডিজিট) ম্যাচ করা [0-9] ব্যবহার করে

  3. MySQL SELECT স্টেটমেন্টে REGEXP ব্যবহার করে রেগুলার এক্সপ্রেশন ম্যাচ করা

  4. পাইথনে DI স্ট্রিং ম্যাচ