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

MySQL-এ স্ট্রিং কলাম থেকে নির্দিষ্ট প্যাটার্নের রেকর্ড বের করা (স্ট্রিং, সংখ্যা, স্পেশাল ক্যারেক্টার)

LIKE প্যাটার্ন ম্যাচিং এবং CAST(SUBSTRING(...) AS SIGNED) ব্যবহার করে স্ট্রিং-সংখ্যা মিশ্র কলাম থেকে নির্দিষ্ট রেকর্ড বের করা যায়।

টেবিল ও ডেটা:

mysql> CREATE TABLE DemoTable2006 (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserCode VARCHAR(20)
);
mysql> INSERT INTO DemoTable2006(UserCode) VALUES
    ('John_12'), ('John_34'), ('John_56'),
    ('Chris_101'), ('Chris_103'), ('Chris_106');

"John" প্রিফিক্সের রোগুলো থেকে সর্বোচ্চ সংখ্যাওয়ালা রো বের করা:

mysql> SELECT * FROM DemoTable2006
    WHERE UserCode LIKE 'John%'
    ORDER BY CAST(SUBSTRING(UserCode, 7) AS SIGNED) DESC
    LIMIT 1;

আউটপুট:

+--------+----------+
| UserId | UserCode |
+--------+----------+
| 3      | John_56  |
+--------+----------+

ব্যাখ্যা

  • UserCode LIKE 'John%' — "John" দিয়ে শুরু হওয়া রো ফিল্টার।
  • SUBSTRING(UserCode, 7) — "John_" (৫ ক্যারেক্টার) বাদ দিয়ে ৭ম ক্যারেক্টার থেকে শুরু (সंख্যা অংশ)।
  • CAST(... AS SIGNED) — স্ট্রিংকে ইন্টিজারে কনভার্ট করে নümerিক্যাল সর্টিং।
  • ORDER BY ... DESC LIMIT 1 — সর্বোচ্চ মান ওয়ালা রো।

দ্রষ্টব্য

যদি প্রিফিক্স দৈর্ঘ্য ফিক্সড না হয় (যেমন "John_12", "Johnny_123"), তবে LOCATE('_', UserCode) ব্যবহার করে ডাইনামিক পজিশন বের করুন:

ORDER BY CAST(SUBSTRING(UserCode, LOCATE('_', UserCode)+1) AS SIGNED) DESC
  1. MySQL-এ SUBSTRING_INDEX() দিয়ে হাইফেন-বিভক্ত স্ট্রিং আলাদা কলামে বির্ভক্ত করা

  2. MySQL-এ AND ও OR অপারেটর ব্যবহার করে নির্দিষ্ট রেকর্ড বের করা

  3. MySQL-এ REGEXP ব্যবহার করে রেগুলার এক্সপ্রেশন দিয়ে আপডেট করা

  4. MySQL-এ REGEXP ব্যবহার করে নির্দিষ্ট সংখ্যা দিয়ে শুরু হওয়া স্ট্রিং-নম্বর রেকর্ড ফেচ করা