假设有这样的一个商品表:
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='黄瓜';