首先通过rand获取mysql特色项目,然后通过asc获取其他项目顺序

时间:2018-02-02 17:05:10

标签: php mysql sql

HI 我需要帮助。我需要从数据库前三项获取数据,其中feature = 1 by rand,其他项目按升序

假设我有50个项目,其中包含10个项目。现在我需要在兰德的10个特色项目中获得第1名。然后按升序排列其他40项。

我想在一次查询中

有可能吗?

1 个答案:

答案 0 :(得分:0)

您可以运行多个查询。一个是获得特色物品,一个是获得常规物品。

$featured = $mysql->query("
    SELECT *
    FROM items
    WHERE featured = 1
    ORDER BY RAND()
    LIMIT 10
");
$ordinary = $mysql->query("
    SELECT *
    FROM items
    WHERE featured = 0
    ORDER BY create_date
    LIMIT 40
");

如果出于某种原因,您只需要一个查询,就可以采用以下方式:

(
    SELECT *
    FROM items
    WHERE featured = 1
    ORDER BY RAND()
    LIMIT 10
) UNION (
    SELECT *
    FROM items
    WHERE featured = 0
    ORDER BY create_date
    LIMIT 40
)