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

MySQL-এ RIGHT() এবং NOT IN দিয়ে নির্দিষ্ট শেষ ৩ ডিজিটवाले মান বাদ দিয়ে বাকি দেখানো

MySQL-এ RIGHT() ফাংশন এবং NOT IN অপারেটর ব্যবহার করে নির্দিষ্ট শেষ ৩ ডিজিটवाले মান বাদ দিয়ে বাকি রেকর্ড বের করা যায়।

উদাহরণ: টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable(Value int); 
Query OK, 0 rows affected (0.71 sec)
mysql> insert into DemoTable values(1234); 
Query OK, 1 row affected (0.54 sec) 
mysql> insert into DemoTable values(2345); 
Query OK, 1 row affected (0.18 sec) 
mysql> insert into DemoTable values(7896); 
Query OK, 1 row affected (0.22 sec) 
mysql> insert into DemoTable values(4321); 
Query OK, 1 row affected (0.15 sec)

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

mysql> select * from DemoTable;
+-------+
| Value |
+-------+
| 1234  |
| 2345  |
| 7896  |
| 4321  |
+-------+
4 rows in set (0.00 sec)

শেষ ৩ ডিজিট '234' বা '321' নয় এমন রেকর্ড বের করা

mysql> select * from DemoTable where right(Value,3) NOT IN('234','321');
+-------+
| Value |
+-------+
| 2345  |
| 7896  |
+-------+
2 rows in set (0.00 sec)

ব্যাখ্যা

ValueRIGHT(Value,3)NOT IN ('234','321')?সিলেক্ট?
1234'234'না (234 তালিকাতে আছে)না
2345'345'হ্যাঁহ্যাঁ
7896'896'হ্যাঁহ্যাঁ
4321'321'না (321 তালিকাতে আছে)না

স্ট্রিং কলামের জন্য

SELECT * FROM users WHERE RIGHT(phone, 3) NOT IN ('000', '111', '999');

পারফরম্যান্স বিবেচনা

  • RIGHT() ফাংশন কলামে থাকায় ইনডেক্স ব্যবহার হয় না
  • বড় টেবিলে: WHERE Value % 1000 NOT IN (234, 321) (মডুলো অপারেটর) দ্রুত হতে পারে
  • বা কম্পিউটেড কলাম: ALTER TABLE t ADD last3 INT AS (Value % 1000) STORED; + ইনডেক্স

টিপ: NOT IN-এ NULL মান থাকলে ফলাফল খালি আসে। তালিকাতে NULL না থাকা নিশ্চিত করুন।

  1. MySQL-এ NOT IN() ব্যবহার করে নির্দিষ্ট মান বাদ দিয়ে রেকর্ড নির্বাচন

  2. MySQL-এ নির্দিষ্ট সেলকে খালি (empty string) করতে আপডেট করা

  3. MySQL-এ খালি মান (Empty String) NULL-এ রূপান্তর করা

  4. MySQL에서 SUM(조건)으로 특정 값 카운트 한 번에 여러 개 구하기