কিভাবে MySQL ক্যোয়ারী ডুপ্লিকেট ডেটা পরিচালনা করে?ডুপ্লিকেট ডেটা স্টেটমেন্ট সরাতে ফিল্টার করুন

মাইএসকিউএলপ্রশ্ন কিভাবে ডুপ্লিকেট ডেটা পরিচালনা করে?ডুপ্লিকেট ডেটা স্টেটমেন্ট সরাতে ফিল্টার করুন

মাইএসকিউএল ডুপ্লিকেট ডেটা পরিচালনা করা

কিছু MySQL ডেটা টেবিলে ডুপ্লিকেট রেকর্ড থাকতে পারে। কিছু ক্ষেত্রে, আমরা ডুপ্লিকেট ডেটার অস্তিত্বের অনুমতি দিই, কিন্তু কখনও কখনও আমাদের এই ডুপ্লিকেট ডেটা মুছে দিতে হবে।

এই অধ্যায়ে, আমরা ডাটা টেবিলে কিভাবে ডুপ্লিকেট ডাটা প্রতিরোধ করা যায় এবং কিভাবে ডাটা টেবিলের ডুপ্লিকেট ডাটা ডিলিট করা যায় তা তুলে ধরব।


টেবিলে ডুপ্লিকেট ডেটা প্রতিরোধ করুন

আপনি MySQL ডেটা টেবিলে নির্দিষ্ট ক্ষেত্রটিকে হিসাবে সেট করতে পারেন প্রাথমিক কী অথবা UNIQUE (অনন্য) তথ্যের স্বতন্ত্রতা নিশ্চিত করতে সূচক।

আসুন একটি উদাহরণ চেষ্টা করি: নীচের সারণীতে কোনও সূচী এবং প্রাথমিক কী নেই, তাই টেবিলটি একাধিক নকল রেকর্ডের অনুমতি দেয়৷

CREATE TABLE person_tbl
(
    first_name CHAR(20),
    last_name CHAR(20),
    sex CHAR(10)
);

আপনি যদি টেবিলে প্রথম_নাম এবং শেষ_নাম ক্ষেত্রগুলি সেট করতে চান তবে ডেটা পুনরাবৃত্তি করা যাবে না, আপনি ডেটার স্বতন্ত্রতা সেট করতে ডাবল প্রাথমিক কী মোড সেট করতে পারেন। আপনি যদি ডবল প্রাথমিক কী সেট করেন তবে সেই কীটির ডিফল্ট মান NULL হতে পারে না, কিন্তু NOT NULL এ সেট করা যেতে পারে।নিম্নরূপ:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10),
   PRIMARY KEY (last_name, first_name)
);

যদি আমরা একটি অনন্য সূচক সেট করি, তাহলে ডুপ্লিকেট ডেটা সন্নিবেশ করার সময়, SQL স্টেটমেন্ট সফলভাবে কার্যকর করতে ব্যর্থ হবে এবং একটি ত্রুটি নিক্ষেপ করবে।

INSERT IGNORE INTO এবং INSERT INTO এর মধ্যে পার্থক্য হল INSERT IGNORE ডাটাবেসে আগে থেকে থাকা ডেটা উপেক্ষা করে৷ যদি ডাটাবেসে কোনও ডেটা না থাকে তবে এটি নতুন ডেটা সন্নিবেশ করবে, এবং যদি ডেটা থাকে তবে এটি এই ডেটাটি এড়িয়ে যাবে৷এইভাবে, ডাটাবেসে বিদ্যমান ডেটা ধরে রাখা যেতে পারে, এবং ফাঁকে ডেটা সন্নিবেশ করার উদ্দেশ্য অর্জন করা যেতে পারে।

নিম্নলিখিত উদাহরণটি INSERT IGNORE INTO ব্যবহার করে, যা ত্রুটি ছাড়াই এবং ডেটা টেবিলে ডুপ্লিকেট ডেটা সন্নিবেশ না করেই কার্যকর করে:

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 0 rows affected (0.00 sec)

INSERT IGNORE INTO ডেটা সন্নিবেশ করার সময়, রেকর্ডের স্বতন্ত্রতা সেট করার পরে, যদি ডুপ্লিকেট ডেটা সন্নিবেশ করা হয়, কোন ত্রুটি ফেরত দেওয়া হবে না, তবে শুধুমাত্র একটি সতর্কতা ফেরত দেওয়া হবে।এবং REPLACE INTO এ যদি একটি প্রাথমিক বা অনন্য রেকর্ড থাকে তবে এটি প্রথমে মুছে ফেলা হবে।একটি নতুন রেকর্ড সন্নিবেশ.

আপনার ডেটার স্বতন্ত্রতা সেট করার আরেকটি উপায় হল এইরকম একটি অনন্য সূচক যুক্ত করা:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10)
   UNIQUE (last_name, first_name)
);

পরিসংখ্যান ডুপ্লিকেট ডেটা

নীচে আমরা টেবিলে first_name এবং last_name এর ডুপ্লিকেট রেকর্ডের সংখ্যা গণনা করব:

mysql> SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;

উপরের ক্যোয়ারী স্টেটমেন্টটি person_tbl টেবিলে নকল রেকর্ডের সংখ্যা ফেরত দেবে।সাধারণভাবে, ডুপ্লিকেট মানগুলির জন্য অনুসন্ধান করতে, নিম্নলিখিতগুলি করুন:

  • কোন কলামে সম্ভাব্য ডুপ্লিকেট মান রয়েছে তা নির্ধারণ করুন।
  • সেই কলামগুলি তালিকাভুক্ত করতে কলাম নির্বাচন তালিকায় COUNT(*) ব্যবহার করুন।
  • GROUP BY ধারায় তালিকাভুক্ত কলাম।
  • HAVING ধারাটি 1-এর বেশি পুনরাবৃত্তির সংখ্যা নির্ধারণ করে।

ফিল্টার ডুপ্লিকেট তথ্য

আপনার যদি অনন্য ডেটা পড়তে হয়, আপনি ডুপ্লিকেট ডেটা ফিল্টার করতে SELECT বিবৃতিতে DISTINCT কীওয়ার্ড ব্যবহার করতে পারেন।

mysql> SELECT DISTINCT last_name, first_name
    -> FROM person_tbl;

আপনি একটি টেবিল থেকে অনন্য ডেটা পড়তে GROUP BY ব্যবহার করতে পারেন:

mysql> SELECT last_name, first_name
    -> FROM person_tbl
    -> GROUP BY (last_name, first_name);

অনুলিপি ডেটা

আপনি যদি ডেটা টেবিলের ডুপ্লিকেট ডেটা মুছতে চান তবে আপনি নিম্নলিখিত SQL বিবৃতিটি ব্যবহার করতে পারেন:

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex
    ->                  FROM person_tbl;
    ->                  GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;

অবশ্যই, আপনি টেবিলের ডুপ্লিকেট রেকর্ড মুছে ফেলার জন্য ডেটা টেবিলে INDEX (সূচী) এবং প্রাথমিক কী (প্রাথমিক কী) যোগ করতে পারেন।পদ্ধতি নিম্নরূপ:

mysql> ALTER IGNORE TABLE person_tbl
    -> ADD PRIMARY KEY (last_name, first_name);

হোপ চেন উইলিয়াং ব্লগ ( https://www.chenweiliang.com/ ) শেয়ার করেছেন "কিভাবে মাইএসকিউএল কোয়েরি করে এবং ডুপ্লিকেট ডেটা পরিচালনা করে?ফিল্টারিং এবং ডিডুপ্লিকেশন স্টেটমেন্ট" আপনাকে সাহায্য করবে।

এই নিবন্ধটির লিঙ্ক শেয়ার করতে স্বাগতম:https://www.chenweiliang.com/cwl-499.html

সর্বশেষ আপডেট পেতে চেন ওয়েইলিয়াং এর ব্লগের টেলিগ্রাম চ্যানেলে স্বাগতম!

🔔 চ্যানেলের শীর্ষ ডিরেক্টরিতে মূল্যবান "ChatGPT সামগ্রী বিপণন AI টুল ব্যবহারের নির্দেশিকা" পেতে প্রথম হন! 🌟
📚 এই গাইডটিতে বিশাল মূল্য রয়েছে, 🌟এটি একটি বিরল সুযোগ, এটি মিস করবেন না! ⏰⌛💨
ভালো লাগলে শেয়ার এবং লাইক করুন!
আপনার শেয়ার এবং লাইক আমাদের ক্রমাগত অনুপ্রেরণা!

 

发表 评论

আপনার ইমেইল ঠিকানা প্রচার করা হবে না. 必填 项 已 用 * 标注

উপরে যান