我有一張表,其中一些行的大部分列都是重複的,除了一列以外。我想知道如何選擇這些行,並根據某些要求只保留一行?下面是我有表:如何刪除mysql中只有一個不同列的行?
+------+------+--------+---------+-----------+
| a_id | b_id | a_name | b_name | matching |
+------+------+--------+---------+-----------+
| 001 | 123 | AAA | BBB | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | Name |
+------+------+--------+---------+-----------+
的要求是,對於相同的A_ID,如果有兩個匹配的ID和匹配的名字,我想匹配名稱中刪除行。匹配的ID由另一個表確定,所以我們不必擔心這一點。所以上表所需的輸出爲:
+------+------+--------+---------+-----------+
| a_id | b_id | a_name | b_name | matching |
+------+------+--------+---------+-----------+
| 001 | 123 | AAA | BBB | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | ID |
+------+------+--------+---------+-----------+
我對MySql並不是很熟悉。我正在考慮使用if語句來首先篩選出具有相同a_id的行,然後比較匹配的列。但我不確定在查詢中如何做到這一點,我想知道是否有更好的方法來做到這一點。 我會感激你的投入。提前致謝!
只匹配列應該改變嗎? – hjpotter92
不,我通過運行查詢兩個表並查找mathing ID和匹配名稱的查詢來獲取此表。問題是它們中的一些重疊(即,具有匹配ID的項目也具有匹配的名稱) – pew007
您能否給我們架構? – Achrome