我正在努力使自己在MYSQL中使用GROUP_CONCAT。
基本上我有下表table1:
id,field1,field2,活动
我想带回表中的5行,但以随机顺序。所以我正在使用这个:
SELECT GROUP_CONCAT(id ORDER BY rand()) FROM table1 WHERE active=1
这就像我期望的那样。然后,我想使用输出从表中选择其他列(field1,field2)并显示结果。所以我尝试使用:
SELECT *
FROM table1
WHERE id IN
(
SELECT GROUP_CONCAT(id ORDER BY rand()) as id FROM table1 WHERE active=1
);
我希望上述方法能起作用,但我不知道为什么不起作用。它确实带回结果,但不是全部,例如,我的表包含10行。6行设置为active = 1。因此,我希望将返回6行...这不会发生,我可能会得到1,2或0。
另外,如果有帮助,我希望将子查询返回的结果数限制为3,但是添加LIMIT似乎对返回的结果没有任何影响。
预先感谢您的帮助
我认为这就是您要寻找的。这将带回5个随机活动行。
SELECT *
FROM table1
WHERE active=1
ORDER BY RAND()
LIMIT 5;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句