以下のテーブル `users` を考えると:
+----+---------+--------+
| id | name | office |
+----+---------+--------+
| 1 | David | 1 |
| 2 | Roz | 1 |
| 3 | Patrick | 2 |
| 4 | Chris | 3 |
| 5 | Agnes | 3 |
| 6 | Freya | 3 |
+----+---------+--------+
特定のオフィスの最初のユーザーを選択したいのですが、複数のユーザーがいる場合にのみ、次のようにします。
- オフィス 1 = ユーザー 1 (デビッド)
- オフィス 2 = NULL
- オフィス 3 = ユーザー 4 (Chris)
次のようなもの:
SET @office_id = 2;
SELECT *
FROM `users`
WHERE `office` = @office_id AND number-of-users-for-office > 1
ORDER BY `id` ASC
LIMIT 1;