首页 使用 sql 查询指定商品的价格排名
文章
取消

使用 sql 查询指定商品的价格排名

假设有这样的一个商品表:

1
2
3
4
5
6
7
8
CREATE TABLE `sku` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL COMMENT '商品名',
  `price` decimal(10,2) NOT NULL COMMENT '单价'
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `idx_uniq_name` (`name`) USING BTREE,
  KEY `idx_price` (`price`) USING BTREE,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

如何使用查询黄瓜的倒序价格排名?

需要定义一个变量作为排名,sql 如下:

1
2
3
set @i=0;

select id,`name`,pos from (select id,`name`,@i:=@i+1 as pos from sku order by price desc) tmp where tmp.name='黄瓜';
本文由作者按照 CC BY 4.0 进行授权