我的数据库中有多个价格最高的商品,我想知道如何在我的数据库中以最高价格退回最贵的商品,而不使用LIMIT。 我尝试过使用
SELECT MAX(price) FROM items
但它只返回一个价格最高的商品(我有两个价格最高的商品)。
我的数据库架构是
items (itemID: integer, description: string, price: integer)
答案 0 :(得分:3)
这样可行。
SET @p1 := (SELECT MAX(price) FROM items);
SELECT * FROM items WHERE price = @p1;
使用变量,p1
存储表price
中的最大items
,然后使用以下查询中的变量p1
返回具有该最高价格的所有记录不要限制你想要的记录数量。
答案 1 :(得分:1)
一种方法是使用连接来获取所有这些:
SELECT I.* FROM Items I JOIN
(SELECT MAX(price) AS maxprice FROM items) M
ON I.price=M.maxprice;
答案 2 :(得分:1)
你可以尝试这个伴侣:
SELECT * FROM items
WHERE itemID IN (
SELECT itemID FROM items
WHERE price IN (
SELECT MAX(price) FROM items
)
);
或者
SELECT * FROM items
WHERE price IN (
SELECT MAX(price) FROM items
);