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

MySQL-এ কেস-সেনসিটিভ ইউনিকনেস এবং কেস-ইনসেনসিটিভ সার্চ একসাথে

MySQL-এ কেস-সেনসিটিভ ইউনিক কনস্ট্রেইন্ট এবং কেস-ইনসেনসিটিভ সার্চ একসাথে অর্জন করার দুটি পদ্ধতি রয়েছে।

পদ্ধতি ১: VARBINARY ডেটা টাইপ

CREATE TABLE SearchingDemo2 (
    UserId VARBINARY(128) NOT NULL,
    UNIQUE KEY idx_userid2 (UserId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  • VARBINARY বাইট-লেভেল কম্পারিজন করে (কেস-সেনসিটিভ)
  • ইউনিক কী ডুপ্লিকেট ব্লক করে (case-sensitive)
  • টেবিল কলেশন utf8_unicode_ci থাকলে সার্চ কেস-ইনসেনসিটিভ হয়

পদ্ধতি ২: _bin কলেশন

CREATE TABLE SearchingDemo (
    UserId VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
    UNIQUE KEY idx_userid (UserId)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  • কলাম-লেভেল utf8_bin → কেস-সেনসিটিভ কম্পারিজন
  • টেবিল-লেভেল utf8_unicode_ci → কেস-ইনসেনসিটিভ সার্চ

টেস্ট

INSERT INTO SearchingDemo VALUES ('John'), ('JOHN'); -- উভয় ইনসার্ট হবে (unique)
SELECT * FROM SearchingDemo WHERE UserId = 'john';  -- কেস-ইনসেনসিটিভ সার্চ → ২ রো

সুপারিশ: আধুনিক MySQL-এ utf8mb4 এবং utf8mb4_0900_ai_ci (accent-insensitive, case-insensitive) ব্যবহার করুন।

  1. MySQL-এ BETWEEN ক্লজ ব্যবহার করে দুটি কলামের মাঝপথে মান খুঁজে বের করা

  2. MySQL-এ একাধিক AND শর্ত ব্যবহার করা

  3. MySQL-এ INSERT() ফাংশন ব্যবহার করে স্ট্রিংয়ের শুরুতে নির্দিষ্ট ক্যারেক্টার রিপ্লেস করা

  4. MySQL IN()-এ কেস-ইনসেনসিটিভ SELECT করা