MySQL ਪੁੱਛਗਿੱਛ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦੀ ਹੈ?ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਸਟੇਟਮੈਂਟ ਨੂੰ ਹਟਾਉਣ ਲਈ ਫਿਲਟਰ ਕਰੋ

MySQLਸਵਾਲ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦੇ ਹਨ?ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਸਟੇਟਮੈਂਟ ਨੂੰ ਹਟਾਉਣ ਲਈ ਫਿਲਟਰ ਕਰੋ

MySQL ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣਾ

ਕੁਝ MySQL ਡੇਟਾ ਟੇਬਲਾਂ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਰਿਕਾਰਡ ਹੋ ਸਕਦੇ ਹਨ। ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਅਸੀਂ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਦੀ ਮੌਜੂਦਗੀ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਾਂ, ਪਰ ਕਈ ਵਾਰ ਸਾਨੂੰ ਇਹਨਾਂ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਮਿਟਾਉਣ ਦੀ ਵੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਇਸ ਅਧਿਆਏ ਵਿੱਚ, ਅਸੀਂ ਡੇਟਾ ਟੇਬਲ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਕਿਵੇਂ ਰੋਕਣਾ ਹੈ ਅਤੇ ਡੇਟਾ ਟੇਬਲ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਕਿਵੇਂ ਮਿਟਾਉਣਾ ਹੈ ਬਾਰੇ ਦੱਸਾਂਗੇ।


ਟੇਬਲ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਨੂੰ ਰੋਕੋ

ਤੁਸੀਂ MySQL ਡੇਟਾ ਟੇਬਲ ਵਿੱਚ ਦਿੱਤੇ ਖੇਤਰ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਜਾਂ UNIQUE (ਵਿਲੱਖਣ) ਅੰਕੜਿਆਂ ਦੀ ਵਿਲੱਖਣਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸੂਚਕਾਂਕ।

ਆਉ ਇੱਕ ਉਦਾਹਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੀਏ: ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵਿੱਚ ਕੋਈ ਸੂਚਕਾਂਕ ਅਤੇ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀਆਂ ਨਹੀਂ ਹਨ, ਇਸਲਈ ਸਾਰਣੀ ਇੱਕ ਤੋਂ ਵੱਧ ਡੁਪਲੀਕੇਟ ਰਿਕਾਰਡਾਂ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।

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

ਜੇਕਰ ਤੁਸੀਂ ਸਾਰਣੀ ਵਿੱਚ ਖੇਤਰ first_name ਅਤੇ last_name ਸੈਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਡੇਟਾ ਨੂੰ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ, ਤੁਸੀਂ ਡੇਟਾ ਦੀ ਵਿਲੱਖਣਤਾ ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਡਬਲ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਮੋਡ ਸੈਟ ਕਰ ਸਕਦੇ ਹੋ। ਜੇਕਰ ਤੁਸੀਂ ਡਬਲ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਸੈਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਉਸ ਕੁੰਜੀ ਦਾ ਮੂਲ ਮੁੱਲ 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 ਡਾਟਾ ਸੰਮਿਲਿਤ ਕਰਦੇ ਸਮੇਂ, ਰਿਕਾਰਡ ਦੀ ਵਿਲੱਖਣਤਾ ਸੈਟ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਜੇਕਰ ਡੁਪਲੀਕੇਟ ਡੇਟਾ ਪਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਕੋਈ ਗਲਤੀ ਵਾਪਸ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ, ਪਰ ਸਿਰਫ ਇੱਕ ਚੇਤਾਵਨੀ ਵਾਪਸ ਕੀਤੀ ਜਾਵੇਗੀ।ਅਤੇ ਜੇਕਰ ਕੋਈ ਪ੍ਰਾਇਮਰੀ ਜਾਂ ਵਿਲੱਖਣ ਰਿਕਾਰਡ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਪਹਿਲਾਂ ਮਿਟਾਓ।ਇੱਕ ਨਵਾਂ ਰਿਕਾਰਡ ਪਾਓ।

ਤੁਹਾਡੇ ਡੇਟਾ ਦੀ ਵਿਲੱਖਣਤਾ ਨੂੰ ਸੈੱਟ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਇਸ ਤਰ੍ਹਾਂ ਇੱਕ ਵਿਲੱਖਣ ਸੂਚਕਾਂਕ ਜੋੜਨਾ ਹੈ:

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 (ਸੂਚਕਾਂਕ) ਅਤੇ 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 ਟੂਲ ਵਰਤੋਂ ਗਾਈਡ" ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਪਹਿਲੇ ਬਣੋ! 🌟
📚 ਇਸ ਗਾਈਡ ਵਿੱਚ ਬਹੁਤ ਵੱਡਾ ਮੁੱਲ ਹੈ, 🌟ਇਹ ਇੱਕ ਦੁਰਲੱਭ ਮੌਕਾ ਹੈ, ਇਸ ਨੂੰ ਨਾ ਗੁਆਓ! ⏰⌛💨
ਜੇ ਚੰਗਾ ਲੱਗੇ ਤਾਂ ਸ਼ੇਅਰ ਅਤੇ ਲਾਈਕ ਕਰੋ!
ਤੁਹਾਡੀ ਸ਼ੇਅਰਿੰਗ ਅਤੇ ਪਸੰਦ ਸਾਡੀ ਨਿਰੰਤਰ ਪ੍ਰੇਰਣਾ ਹਨ!

 

ਇੱਕ ਟਿੱਪਣੀ ਪੋਸਟ

ਤੁਹਾਡਾ ਈਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਤ ਨਹੀ ਕੀਤਾ ਜਾਵੇਗਾ. ਲੋੜੀਂਦੇ ਖੇਤਰ ਵਰਤੇ ਜਾ ਰਹੇ ਹਨ * ਲੇਬਲ

ਸਿਖਰ ਤੱਕ ਸਕ੍ਰੋਲ ਕਰੋ