HI 我需要帮助。我需要从数据库前三项获取数据,其中feature = 1 by rand,其他项目按升序。
假设我有50个项目,其中包含10个项目。现在我需要在兰德的10个特色项目中获得第1名。然后按升序排列其他40项。
我想在一次查询中
有可能吗?
答案 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
)