MySQL അന്വേഷണം എങ്ങനെയാണ് ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ കൈകാര്യം ചെയ്യുന്നത്?ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ സ്റ്റേറ്റ്‌മെന്റ് നീക്കം ചെയ്യാൻ ഫിൽട്ടർ ചെയ്യുക

MySQLഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ എങ്ങനെയാണ് അന്വേഷണങ്ങൾ കൈകാര്യം ചെയ്യുന്നത്?ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ സ്റ്റേറ്റ്‌മെന്റ് നീക്കം ചെയ്യാൻ ഫിൽട്ടർ ചെയ്യുക

MySQL ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ കൈകാര്യം ചെയ്യുന്നു

ചില MySQL ഡാറ്റ ടേബിളുകളിൽ ഡ്യൂപ്ലിക്കേറ്റ് റെക്കോർഡുകൾ ഉണ്ടാകാം. ചില സന്ദർഭങ്ങളിൽ, ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റയുടെ നിലനിൽപ്പ് ഞങ്ങൾ അനുവദിക്കുന്നു, എന്നാൽ ചിലപ്പോൾ ഈ തനിപ്പകർപ്പ് ഡാറ്റയും ഇല്ലാതാക്കേണ്ടതുണ്ട്.

ഈ അധ്യായത്തിൽ, ഡാറ്റാ ടേബിളിലെ ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ എങ്ങനെ തടയാമെന്നും ഡാറ്റാ ടേബിളിലെ ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ എങ്ങനെ ഇല്ലാതാക്കാമെന്നും ഞങ്ങൾ പരിചയപ്പെടുത്തും.


പട്ടികകളിലെ ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ തടയുക

നിങ്ങൾക്ക് MySQL ഡാറ്റാ ടേബിളിലെ നിർദ്ദിഷ്ട ഫീൽഡ് ഇതായി സജ്ജമാക്കാൻ കഴിയും പ്രൈമറി കീ അല്ലെങ്കിൽ UNIQUE (അതുല്യം) ഡാറ്റയുടെ അദ്വിതീയത ഉറപ്പാക്കുന്നതിനുള്ള സൂചിക.

നമുക്ക് ഒരു ഉദാഹരണം പരീക്ഷിക്കാം: ചുവടെയുള്ള പട്ടികയിൽ സൂചികകളും പ്രാഥമിക കീകളും ഇല്ല, അതിനാൽ പട്ടിക ഒന്നിലധികം ഡ്യൂപ്ലിക്കേറ്റ് റെക്കോർഡുകൾ അനുവദിക്കുന്നു.

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

നിങ്ങൾക്ക് പട്ടികയിൽ ആദ്യ_നാമവും അവസാന_നാമവും സജ്ജീകരിക്കണമെങ്കിൽ, ഡാറ്റ ആവർത്തിക്കാൻ കഴിയില്ല, ഡാറ്റയുടെ അദ്വിതീയത സജ്ജീകരിക്കുന്നതിന് നിങ്ങൾക്ക് ഇരട്ട പ്രൈമറി കീ മോഡ് സജ്ജീകരിക്കാം. നിങ്ങൾ ഇരട്ട പ്രൈമറി കീ സജ്ജമാക്കുകയാണെങ്കിൽ, ആ കീയുടെ സ്ഥിര മൂല്യം NULL ആകാൻ കഴിയില്ല, പക്ഷേ 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 ഡാറ്റ ചേർക്കുമ്പോൾ, റെക്കോർഡിന്റെ പ്രത്യേകത സജ്ജീകരിച്ച ശേഷം, ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ ചേർത്താൽ, ഒരു പിശകും നൽകില്ല, പക്ഷേ ഒരു മുന്നറിയിപ്പ് മാത്രമേ നൽകൂ.ഒരു പ്രാഥമിക അല്ലെങ്കിൽ തനതായ റെക്കോർഡ് ഉണ്ടെങ്കിൽ, അത് ആദ്യം ഇല്ലാതാക്കപ്പെടും.ഒരു പുതിയ റെക്കോർഡ് ചേർക്കുക.

നിങ്ങളുടെ ഡാറ്റയുടെ അദ്വിതീയത സജ്ജീകരിക്കുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം ഇതുപോലുള്ള ഒരു UNIQUE ഇൻഡക്സ് ചേർക്കുക എന്നതാണ്:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10)
   UNIQUE (last_name, first_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(*) ഉപയോഗിക്കുക.
  • ക്ലോസ് പ്രകാരം ഗ്രൂപ്പിൽ ലിസ്റ്റ് ചെയ്തിരിക്കുന്ന നിരകൾ.
  • 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 (സൂചിക), PRIMAY KEY (പ്രൈമറി കീ) എന്നിവ ചേർക്കാനും കഴിയും.താഴെ പറയുന്ന രീതികൾ:

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

ഹോപ്പ് ചെൻ വെയ്‌ലിയാങ് ബ്ലോഗ് ( https://www.chenweiliang.com/ ) പങ്കിട്ടു "എങ്ങനെയാണ് MySQL ഡ്യൂപ്ലിക്കേറ്റ് ഡാറ്റ അന്വേഷിക്കുന്നതും കൈകാര്യം ചെയ്യുന്നതും?ഫിൽട്ടറിംഗ്, ഡ്യൂപ്ലിക്കേഷൻ സ്റ്റേറ്റ്‌മെന്റുകൾ" നിങ്ങളെ സഹായിക്കും.

ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ സ്വാഗതം:https://www.chenweiliang.com/cwl-499.html

ഏറ്റവും പുതിയ അപ്‌ഡേറ്റുകൾ ലഭിക്കുന്നതിന് ചെൻ വെയ്‌ലിയാങ്ങിന്റെ ബ്ലോഗിന്റെ ടെലിഗ്രാം ചാനലിലേക്ക് സ്വാഗതം!

🔔 ചാനൽ ടോപ്പ് ഡയറക്‌ടറിയിൽ വിലയേറിയ "ChatGPT കണ്ടന്റ് മാർക്കറ്റിംഗ് AI ടൂൾ ഉപയോഗ ഗൈഡ്" നേടുന്ന ആദ്യത്തെയാളാകൂ! 🌟
📚 ഈ ഗൈഡിൽ വലിയ മൂല്യമുണ്ട്, 🌟 ഇതൊരു അപൂർവ അവസരമാണ്, ഇത് നഷ്‌ടപ്പെടുത്തരുത്! ⏰⌛💨
ഇഷ്ടമായാൽ ഷെയർ ചെയ്യുക, ലൈക്ക് ചെയ്യുക!
നിങ്ങളുടെ ഷെയറിംഗും ലൈക്കുകളുമാണ് ഞങ്ങളുടെ തുടർച്ചയായ പ്രചോദനം!

 

发表 评论

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ ഉപയോഗിക്കുന്നു * ലേബൽ

മുകളിലേക്ക് സ്ക്രോൾ ചെയ്യുക