如何使用带有最大点赞数的 MySQL count() 检索一个值?
假设我们在表中有一些列,一列用于图片路径,另一列用于点赞数。但是,第一列是自动增长的 Id,如下所示
mysql> create table DemoTable( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,ImagePath varchar(100),UpvoteValue int ); Query OK, 0 rows affected (0.72 sec)
使用插入命令在表中插入一些记录 −
mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image1.jpeg',90); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image2.jpeg',10); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image3.jpeg',120); Query OK, 1 row affected (0.25 sec) mysql> insert into DemoTable(ImagePath,UpvoteValue) values('Image4.jpeg',114); Query OK, 1 row affected (1.17 sec)
使用 select 语句显示来自表的全部记录 −
mysql> select *from DemoTable;
这将产生以下输出 −
+----+-------------+-------------+ | Id | ImagePath | UpvoteValue | +----+-------------+-------------+ | 1 | Image1.jpeg | 90 | | 2 | Image2.jpeg | 10 | | 3 | Image3.jpeg | 120 | | 4 | Image4.jpeg | 114 | +----+-------------+-------------+ 4 rows in set (0.00 sec)
以下是使用 count() 和最大点赞数检索图片路径值的查询 −
mysql> select ImagePath from DemoTable where UpvoteValue IN (select max(UpvoteValue) from DemoTable);
这将产生以下输出 >
+-------------+ | ImagePath | +-------------+ | Image3.jpeg | +-------------+ 1 row in set (0.00 sec)
广告