<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # SQL – 不使用臨時表刪除重復行 > 原文: [https://howtodoinjava.com/sql/how-to-remove-duplicate-rows-in-mysql-without-using-temporary-table/](https://howtodoinjava.com/sql/how-to-remove-duplicate-rows-in-mysql-without-using-temporary-table/) 作為開發人員,我們經常遇到必須處理數據庫相關內容的情況。 通常,當客戶端以 excel 工作表的形式向您發送其數據,并且在經過一些 excel 操作后將數據推送到數據庫表時,便完成了該操作。 我也做了很多次。 這種方法面臨的一個非常普遍的問題是,有時可能會導致重復行,因為發送的數據主要來自人力資源和財務等部門,而人們對這些數據標準化技術的了解并不充分 :-)。 我將使用`Employee`表,其中的列名稱為 ID,名稱,部門和電子郵件。 以下是用于生成測試數據的 SQL 腳本。 ```java Create schema TestDB; CREATE TABLE EMPLOYEE ( ?? ?ID INT, ?? ?NAME Varchar(100), ?? ?DEPARTMENT INT, ?? ?EMAIL Varchar(100) ); INSERT INTO EMPLOYEE VALUES (1,'Anish',101,'anish@howtodoinjava.com'); INSERT INTO EMPLOYEE VALUES (2,'Lokesh',102,'lokesh@howtodoinjava.com'); INSERT INTO EMPLOYEE VALUES (3,'Rakesh',103,'rakesh@howtodoinjava.com'); INSERT INTO EMPLOYEE VALUES (4,'Yogesh',104,'yogesh@howtodoinjava.com'); --These are the duplicate rows INSERT INTO EMPLOYEE VALUES (5,'Anish',101,'anish@howtodoinjava.com'); INSERT INTO EMPLOYEE VALUES (6,'Lokesh',102,'lokesh@howtodoinjava.com'); ``` ## 解決方案: ```java DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id; ``` 上面的 sql 查詢將刪除名稱字段重復的行,并且僅保留**名稱唯一且 ID 字段最低的**唯一行。 例如,ID 為 5 和 6 的行將被刪除,而 ID 為 1 和 2 的行將被保留。 ![delete-duplicate-rows-in-mysql](https://img.kancloud.cn/6b/32/6b325de550f85865e245da834614f895_978x733.png) *如果要保留具有最新生成的 ID 值的行,則將`where`子句中的條件反轉為`e1.id < e2.id`,如下所示:* ```java DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id; ``` 如果要比較多個字段并添加適當的`where`子句。 ***注意**:請始終首先對測試數據執行以上(或修改)查詢,以確保其產生預期的輸出。* 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看