我正在做下一个查询:
SELECT id, name, keyt
FROM table
WHERE id = (SELECT t2.id FROM table t2 WHERE t2.keyt=21 ORDER BY RAND() LIMIT 1)
假设表是这样的:
| id | name | keyt |
+ ------------------------- +
| 1 | Hello | 21 |
| 3 | Katzet | 1 |
| 1 | Welcome | 1 |
| 2 | Two | 21 |
| 2 | Other | 1 |
它应该返回其中一对:
- 你好 | 欢迎(共有 1 个ID )
- 二 | 其他(共有 id 2)
所以,想法是:
获取一个 id,其keyt
值设置为 21
然后,获取具有此选定 id 的所有行(独立于所有其他 keyt 值)
如果我按照你的建议做......我会得到混合的id值,并且所有结果行必须具有相同的id。