【发布时间】:2015-07-09 21:27:28
【问题描述】:
我有下表(实际问题的简化):
+----+-------+
| id | value |
+----+-------+
| 1 | T |
| 2 | T |
| 3 | F |
| 4 | T |
+----+-------+
现在,一个简单的SELECT id FROM Table WHERE value='T'; 会为我提供值为 T 的所有 ID,但在上面的示例中,我只需要前 2 个(1 和 2)。
最好的方法是什么?我不想使用 while 循环。
我将它标记为 MySQL,但适用于大多数数据库引擎的解决方案会更好。
编辑:根据答案,我可能还不够清楚:
我只想要值为“T”的第一个 ID。这可以是从没有值到所有值的任何值。
编辑 2:另一个例子:
+----+-------+
| id | value |
+----+-------+
| 1 | F |
| 2 | T |
| 5 | T |
| 6 | F |
| 7 | T |
| 9 | T |
+----+-------+
结果将是 []。
示例 3:
+----+-------+
| id | value |
+----+-------+
| 1 | T |
| 2 | T |
| 5 | T |
| 6 | F |
| 7 | T |
| 9 | T |
+----+-------+
结果:[1, 2, 5]
【问题讨论】:
-
我已经根据您的更新要求更新了我的答案。
标签: mysql sql while-loop ansi-sql