嗨我需要帮助。我需要从DB第一个三项其中feature= 1(按兰特)获取数据,然后按升序获取其他项目。
假设我有 50 个项目,其中 10 个项目是特色项目。现在我需要从 10 个特色商品中按兰特获取第 1 个 3。然后按升序排列其他 40 项。
我希望它们出现在一个查询中
可能吗?
最佳答案
您可以运行多个查询。一种获得特色元素,一种获得常规元素。
$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
)
关于php - 首先通过 rand 获取 mysql 特色项,然后通过 asc 获取其他项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587571/