我有一个MySQL表(results),包含如下所示的六列:+----+-------+-------+-------+-------+-------+
| id | can_1 | can_2 | can_3 | can_4 | can_5 |
+----+-------+-------+-------+-------+-------+
| 1 | 1 | 0 | 2 | 4 | 3 |
+----+-------+-------+-------+-------+-------+
| 2 | 2 | 1 | 5 | 3 | 4 |
+----+-------+-------+-------+-------+-------+
| 3 | 3 | 1 | 0 | 0 | 0 |
+----+-------+-------+-------+-------+-------+
| 4 | 0 | 2 | 1 | 0 | 3 |
+----+-------+-------+-------+-------+-------+
我试图根据每行中存储的值从can_1列中获取最小值大于1的行。
例如:can_1需要返回行(id)2和3,因为2是第2行的最小值,3是第3行的最小值。
使用SELECT id FROM results WHERE can_1 = (SELECT MIN(can_1) FROM results);
退货+----+
| id |
+----+
| 2 |
+----+
这是可以理解的-MIN-value检查整个列(can_1)中大于1的最小值,在can_1的情况下是2。 但是我如何组合这一点,以便整行(覆盖所有列)的最小值确定为can_1列返回的最小值,即。 结果会是这样?+----+
| id |
+----+
| 2 |
+----+
| 3 |
+----+