我有一个表,其中对于某些行,除了一列之外,大多数列都是重复的。我想知道如何选择这些行并根据某些要求只保留一个?这是我的表:
+------+------+--------+---------+-----------+
| 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 的行,然后比较匹配的列。但我不确定如何在查询中做到这一点,我想知道是否有更好的方法来做到这一点。我会很感激你的意见。提前致谢!