Я пытаюсь выбрать 3 случайные записи из таблицы, при условии, что результат должен включать хотя бы одну запись со значением 'число', которое больше 3.
Пример таблицы:
+--------+-------+--------+
| ID | name | number |
+--------+-------+--------+
| 1 | name1 | 5 |
+--------+-------+--------+
| 2 | name2 | 0 |
+--------+-------+--------+
| 3 | name3 | 2 |
+--------+-------+--------+
| 4 | name4 | 7 |
+--------+-------+--------+
| 5 | name5 | 9 |
+--------+-------+--------+
| 6 | name6 | 1 |
+--------+-------+--------+
| etc... | | |
+--------+-------+--------+
Таким образом, результатом могут быть записи с идентификаторами: 1,2 и 6. Или 1,4 и 9. Но НЕ 2,3 и 6, потому что этот результат не включает хотя бы одну запись, где «число»> 3.
Я пытался это сделать, но он не может вернуть результаты, которые всегда включают хотя бы одну запись со значением> 3:
SELECT name, number FROM table
WHERE EXISTS (
SELECT number FROM table
WHERE number > 3
)
ORDER BY RAND()
LIMIT 3
Я думаю, что я на неправильном пути. Любая помощь будет принята с благодарностью!