我有一张表格,格式如下:
Id | Loc |
-------|-----|
789-A | 4 |
123 | 1 |
123-BZ | 1 |
123-CG | 2 |
456 | 2 |
456 | 3 |
789 | 4 |
我想根据是否存在重复从查询结果中排除某些行。但是,在这种情况下,重复行的定义非常复杂:
如果查询返回的任何行(让我们将此假设行称为)在查询结果中也包含与AND形式相同ThisRow
的对应行,则应将其视为重复并从查询结果中排除。Loc
ThisRow.Loc
Id
<ThisRow.Id>-<an alphanumeric suffix>
ThisRow
例如,使用上面的表格,SELECT * FROM table
应该返回下面的结果集:
Id | Loc |
-------|-----|
789-A | 4 |
123-BZ | 1 |
123-CG | 2 |
456 | 2 |
456 | 3 |
我了解如何编写字符串匹配条件:
ThisRow.Id REGEXP '^PossibleDuplicateRow.Id-[A-Za-z0-9]*'
和直接比较Loc
:
ThisRow.Loc = PossibleDuplicateRow.Loc
我不明白的是如何将这些条件形成一个(自引用?)查询。