国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中處理各種重復的一些方法

2024-07-24 12:46:01
字體:
來源:轉載
供稿:網友

有時表或結果集包含重復的記錄。有時它是允許的,但有時它需要停止重復的記錄。有時它需要識別重復的記錄從表中刪除。本章將介紹如何防止發生在一個表中重復的記錄如何刪除已經存在的重復記錄。
防止重復表中的發生:

可以使用PRIMARY KEY或UNIQUE索引的表上相應的字段來防止重復的記錄。讓我們舉一個例子,下面的表中不包含這樣的索引或主鍵,所以它會允許記錄first_name和last_name重復

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

可以使用PRIMARY KEY或UNIQUE索引的表上相應的字段防止重復的記錄。讓我們舉一個例子,下面的表中不包含這樣的索引或主鍵,所以它會允許重復first_name和last_name記錄

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

表中的唯一索引的存在通常會導致錯誤的發生,如果表中插入一條記錄,重復定義索引的列或列中的現有記錄。
使用INSERT IGNORE而不是INSERT。如果記錄不重復現有的記錄,MySQL將插入它像往常一樣。如果記錄是重復IGNORE關鍵字告訴MySQL靜靜地拋棄它,而不會產生錯誤。

下面的示例中沒有錯誤,同時也不會插入重復的記錄。

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。如果記錄是新的它INSERT插入。如果它是一個重復的,新的記錄將取代舊的:

mysql> REPLACE INTO person_tbl (last_name, first_name) -> VALUES( 'Ajay', 'Kumar');Query OK, 1 row affected (0.00 sec)mysql> REPLACE INTO person_tbl (last_name, first_name) -> VALUES( 'Ajay', 'Kumar');Query OK, 2 rows affected (0.00 sec)

使用REPLACE而不是INSERT。如果記錄是新的它INSERT插入。如果它是一個重復的,新的記錄將取代舊的:

強制唯一性的另一種方法是添加一個UNIQUE索引,而不是一個PRIMARY KEY表。

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表中重復的記錄。在一般情況下,識別重復的值,請執行以下操作:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英吉沙县| 彰化县| 新绛县| 利津县| 黑龙江省| 濮阳县| 青铜峡市| 南木林县| 伊金霍洛旗| 彭水| 怀柔区| 公主岭市| 左云县| 鄯善县| 葵青区| 错那县| 卓资县| 湛江市| 长兴县| 新兴县| 文山县| 卓尼县| 平阳县| 宝山区| 江安县| 赤水市| 遵义市| 蒙自县| 广安市| 广宗县| 长沙县| 绩溪县| 鹿邑县| 曲松县| 民丰县| 松原市| 桃园县| 迁西县| 巴东县| 高邑县| 高雄市|