我正在尝试从同一个表SELECT
的{{1}}和status = 1
表中SELECT
运行一个查询。我希望最终结果仅限于6,并且最终结果可以随机选择(洗牌)。我尝试使用status = 6
,但它返回相同的结果,没有任何改组(随机选择)。
这是我的疑问:
ORDER BY rand()
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
试试吗?
SELECT * FROM (
SELECT *
FROM fpf_adverts
WHERE status IN (1,6)
ORDER BY status
LIMIT 6) t
ORDER BY RAND()
以前的回答
试试吗?
SELECT * FROM
(SELECT *
FROM fpf_adverts WHERE status = 1
UNION ALL
SELECT e.*
FROM fpf_adverts e
INNER JOIN fpf_adverts ee ON e.status + 6 > ee.status
WHERE e.status = 6) t
ORDER BY rand()
LIMIT 6
但是如果您只想按状态1或6进行过滤,那么
SELECT *
FROM fpf_adverts
WHERE status IN (1,6)
ORDER BY rand()
LIMIT 6