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

MySQL-এ "ñ" খুঁজে "n" ধারণকারী রেকর্ড বাদ দেওয়া (COLLATE)

MySQL-এ ডিফল্ট কোলেশন (যেমন utf8_general_ci) এ ñ এবং n সমান মনে হয়। স্পেনিশ কোলেশন utf8_spanish_ci ব্যবহার করলে ñ আলাদা অক্ষর হিসেবে চেনা হয়।

সমস্যা

CREATE TABLE not_include_n_demo (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    client_name VARCHAR(20)
);

INSERT INTO not_include_n_demo (client_name) VALUES ('John'), ('Johñ'), ('Johnñy');

SELECT * FROM not_include_n_demo WHERE client_name LIKE '%ñ%';

ডিফল্ট কোলেশন আউটপুট (৩ সারি রিটার্ন — ভুল)

+----+------------+
| id | client_name|
+----+------------+
| 1  | John       |  -- 'n' মেলেছে 'ñ'-এর সাথে
| 2  | Johñ       |
| 3  | Johnñy     |
+----+------------+

সমাধান: utf8_spanish_ci কোলেশন ব্যবহার

SELECT * FROM not_include_n_demo 
WHERE client_name LIKE '%ñ%' COLLATE utf8_spanish_ci;

সঠিক আউটপুট (২ সারি)

+----+------------+
| id | client_name|
+----+------------+
| 2  | Johñ       |
| 3  | Johnñy     |
+----+------------+

কোলেশন পার্থক্য

কোলেশনn vs ñব্যবহার
utf8_general_ciসমান (=)জেনারেল Zweck
utf8_spanish_ciভিন্ন (≠)স্পেনিশ ভাষা
utf8_spanish2_ciভিন্ন (ঐতিহ্যবাহী স্পেনিশ সর্টিং)পুরানো স্পেনিশ

টেবিল/কলাম লেভেলে কোলেশন সেট

-- কলাম লেভেলে
CREATE TABLE t (name VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci);

-- টেবিল লেভেলে
CREATE TABLE t (name VARCHAR(20)) CHARACTER SET utf8 COLLATE utf8_spanish_ci;

অন্যান্য ভাষার জন্য

  • জার্মান: utf8_german2_ci (ß vs ss আলাদা)
  • সুইডিশ: utf8_swedish_ci
  • টার্কিশ: utf8_turkish_ci (i vs ı আলাদা)
  1. নির্দিষ্ট রেকর্ডের ভিত্তিতে গ্রুপিং ও যোগফল বের করার MySQL কোয়েরি

  2. MySQL কোয়েরি: ম্যাচ খুঁজে বের করে রেকর্ড বের করা

  3. MySQL কোয়েরি: LIKE এবং OR ব্যবহার করে টেক্সট সার্চ করে রেকর্ড বের করা

  4. MySQL에서 ^(캐럿) 문자가 포함된 컬럼명 찾기 (INFORMATION_SCHEMA 활용)