如何改组两个MySQL SELECT语句的结果

时间:2015-11-02 07:56:55

标签: mysql

我正在尝试从同一个表SELECT的{​​{1}}和status = 1表中SELECT运行一个查询。我希望最终结果仅限于6,并且最终结果可以随机选择(洗牌)。我尝试使用status = 6,但它返回相同的结果,没有任何改组(随机选择)。
这是我的疑问:

ORDER BY rand()

关于如何实现这一目标的任何想法?

1 个答案:

答案 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