Pehea e mālama ai ka nīnau MySQL i ka ʻikepili pālua?Kānana no ka wehe ʻana i ka ʻōlelo ʻikepili pālua

MySQLPehea e hana ai nā nīnau i ka ʻikepili pālua?Kānana no ka wehe ʻana i ka ʻōlelo ʻikepili pālua

MySQL Ka mālama ʻana i nā ʻikepili pālua

Loaʻa paha nā moʻolelo pālua i kekahi mau papa ʻikepili MySQL. I kekahi mau hihia, ʻae mākou i ke ʻano o ka ʻikepili pālua, akā i kekahi manawa pono mākou e holoi i kēia mau ʻikepili pālua.

Ma kēia mokuna, e hoʻolauna mākou pehea e pale ai i ka ʻikepili pālua i ka papa ʻikepili a pehea e holoi ai i ka ʻikepili pālua i ka papa ʻikepili.


Kāohi i ka ʻikepili pālua ma nā papa

Hiki iā ʻoe ke hoʻonohonoho i ke kahua i kuhikuhi ʻia i ka papa ʻikepili MySQL e like me KI KUMU a i ʻole UNIQUE (kūʻokoʻa) Index e hōʻoia i ke kūʻokoʻa o ka ʻikepili.

E ho'āʻo kākou i kekahi laʻana: ʻAʻohe mea kuhikuhi a me nā kī nui ma ka pākaukau ma lalo nei, no laila hiki i ka papa ʻaina ke ʻae i nā moʻolelo pālua.

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

Inā makemake ʻoe e hoʻonoho i nā kahua mua_name a me hope_name ma ka papaʻaina, ʻaʻole hiki ke hana hou ʻia ka ʻikepili, hiki iā ʻoe ke hoʻonohonoho i ke ʻano kī pālua ʻelua e hoʻonohonoho i ka ʻokoʻa o ka ʻikepili. ʻAʻole hiki ke NULL, akā hiki ke hoʻonohonoho iā NOT NULL.Penei:

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)
);

Inā mākou e hoʻonoho i kahi kuhikuhi kūʻokoʻa, a laila i ka wā e hoʻokomo ai i ka ʻikepili pālua, ʻaʻole e hoʻokō pono ka ʻōlelo SQL a hoʻolei i kahi hewa.

ʻO ka ʻokoʻa ma waena o INSERT IGNORE INTO a me INSERT INTO, ʻo ia ka INSERT IGNORE e nānā ʻole i ka ʻikepili i loaʻa i loko o ka waihona.Ma kēiaʻano, hiki ke mālamaʻia nāʻikepili i loaʻa i loko o ka waihona, a hiki ke hoʻokōʻia ke kumu o ka hoʻokomoʻana i nāʻikepili i loko o ke āpau.

Ke hoʻohana nei kēia laʻana iā INSERT IGNORE INTO, e hana me ka hewa ʻole a ʻaʻole hoʻokomo i ka ʻikepili pālua i ka papa ʻikepili:

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 I ka hoʻokomo ʻana i ka ʻikepili, ma hope o ka hoʻonohonoho ʻana o ka ʻokoʻa o ka moʻolelo, inā hoʻokomo ʻia ka ʻikepili pālua, ʻaʻohe hewa e hoʻihoʻi ʻia, akā e hoʻihoʻi ʻia kahi ʻōlelo aʻo.A REPLACE INTO inā he moʻolelo kumu a kū hoʻokahi paha, e holoi mua iā ia.E hoʻokomo i kahi moʻolelo hou.

ʻO kahi ala ʻē aʻe e hoʻonohonoho i ka ʻokoʻa o kāu ʻikepili e hoʻohui i kahi index UNIQUE e like me kēia:

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

Ka helu helu ʻikepili

Ma lalo e helu mākou i ka helu o nā moʻolelo pālua o ka inoa mua a me ka inoa hope ma ka papa:

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

E hoʻihoʻi ka ʻōlelo nīnau i luna i ka helu o nā moʻolelo pālua ma ka papa person_tbl.Ma keʻano laulā, no ka nīnau ʻana i nā waiwai pālua, e hana i kēia:

  • E hoʻoholo i ke kolamu i loaʻa i nā waiwai ʻelua.
  • E hoʻohana i ka COUNT(*) ma ke kolamu koho papa inoa e papa inoa i kēlā mau kolamu.
  • Nā kolamu i helu ʻia ma ka paukū GROUP BY.
  • Hoʻonohonoho ka pauku HAVING i ka helu o ka hana hou ʻana ma mua o 1.

kānana ʻikepili pālua

Inā pono ʻoe e heluhelu i ka ʻikepili kū hoʻokahi, hiki iā ʻoe ke hoʻohana i ka huaʻōlelo DISTINCT ma ka ʻōlelo SELECT e kānana i ka ʻikepili pālua.

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

Hiki iā ʻoe ke hoʻohana iā GROUP BY e heluhelu i ka ʻikepili kūʻokoʻa mai kahi pākaukau:

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

wehe i ka ʻikepili

Inā makemake ʻoe e holoi i ka ʻikepili pālua i ka papa ʻikepili, hiki iā ʻoe ke hoʻohana i kēia ʻōlelo 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;

ʻOiaʻiʻo, hiki iā ʻoe ke hoʻohui i ka INDEX (index) a me PRIMAY KEY (key primary) i ka papa ʻikepili no ka holoi ʻana i nā moʻolelo pālua ma ka papa.Nā hana e like me lalo:

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

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) kaʻana like "Pehea ka nīnau a MySQL a mālama i ka ʻikepili pālua?E kōkua iā ʻoe nā kānana a me ka wehe ʻana i nā ʻōlelo ".

Welina mai e kaʻana like i ka loulou o kēia ʻatikala:https://www.chenweiliang.com/cwl-499.html

Welina mai i ke kahawai Telegram o ka moʻomanaʻo ʻo Chen Weiliang e kiʻi i nā mea hou loa!

🔔 E lilo i mea mua e kiʻi i ka waiwai nui "ChatGPT Content Marketing AI Tool Usage Guide" ma ka papa kuhikuhi kiʻekiʻe. 🌟
📚 He waiwai nui kēia alakaʻi, 🌟He manawa kakaikahi kēia, mai poina! ⏰⌛💨
Kaʻana like a like inā makemake ʻoe!
ʻO kāu kaʻana like a me kou makemake ʻo kā mākou hoʻoikaika mau!

 

评论

ʻAʻole e paʻi ʻia kāu leka uila. Hoʻohana ʻia nā kahua koi * Label

ʻōwili i luna