【发布时间】:2012-11-28 14:01:09
【问题描述】:
这是我的情况:我有一个重复值有效的表(ID 字段除外),我只想检索唯一值。
例如,如果我有寄存器:
+----+--------------+-------------+------+------+-------+-----+
| ID | SATELLITE_ID | ATT_TYPE_ID | TIME | ROLL | PITCH | YAW |
+----+--------------+-------------+------+------+-------+-----+
| 1 | 1 | 1 | 2012 | 1.0 | 2.0 | 1.3 |
+----+--------------+-------------+------+------+-------+-----+
| 2 | 1 | 1 | 2012 | 1.0 | 2.0 | 1.3 |
+----+--------------+-------------+------+------+-------+-----+
| 3 | 1 | 1 | 2011 | 1.0 | 2.0 | 1.3 |
+----+--------------+-------------+------+------+-------+-----+
我只想检索 2 和 3(ID 1 和 2 “相等”,而 3 的 TIME 不同)。
这是表结构
mysql> describe attitude;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| SATELLITE_ID | int(11) | NO | | NULL | |
| ATT_TYPE_ID | int(11) | NO | | NULL | |
| TIME | varchar(4) | NO | | NULL | |
| ROLL | double | NO | | NULL | |
| PITCH | double | NO | | NULL | |
| YAW | double | NO | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
谢谢。
【问题讨论】:
-
假设任何非键列值都可以更改是否安全?另外,您在查询中选择了哪些列?
-
一千个寄存器对数据库引擎来说根本算不了什么。
-
我想检索整个寄存器(除了id之外的所有列),并且我有一个很大的数据库,所以性能是一个问题(我删除了之前的帖子由于错误,所以我在这里复制它并更改寄存器的数量)。