我试图从一个表中选择3个随机记录,前提是结果至少应包括一个值“数字”大于3的记录。
实例表:
+--------+-------+--------+
| ID | name | number |
+--------+-------+--------+
| 1 | name1 | 5 |
+--------+-------+--------+
| 2 | name2 | 0 |
+--------+-------+--------+
| 3 | name3 | 2 |
+--------+-------+--------+
| 4 | name4 | 7 |
+--------+-------+--------+
| 5 | name5 | 9 |
+--------+-------+--------+
| 6 | name6 | 1 |
+--------+-------+--------+
| etc... | | |
+--------+-------+--------+
因此,结果可能是ID为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
我想我走错了。任何帮助都将不胜感激!