Sql 通过一些计算从数据库中获取前10名

Sql 通过一些计算从数据库中获取前10名,sql,mysql,Sql,Mysql,我想要前10张顶级照片! 但是因为有向上(拇指朝上)和向下(拇指朝下) 有点复杂! 有人能帮忙吗?从表顺序中选择*按p\u向上-p\u向下描述限制10 如果在表上创建索引foo(p\u up-p\u down),速度会更快。以下查询将首先获取p\u up-p\u down值最大的照片: CREATE TABLE IF NOT EXISTS `photos` ( `p_id` bigint(20) unsigned NOT NULL auto_increment, `u_id` bigin

我想要前10张顶级照片! 但是因为有向上(拇指朝上)和向下(拇指朝下) 有点复杂!
有人能帮忙吗?

从表顺序中选择*按p\u向上-p\u向下描述限制10


如果在表上创建索引foo(p\u up-p\u down),速度会更快。

以下查询将首先获取p\u up-p\u down值最大的照片:

CREATE TABLE IF NOT EXISTS `photos` (
  `p_id` bigint(20) unsigned NOT NULL auto_increment,
  `u_id` bigint(20) unsigned NOT NULL default '0',
  `p_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `p_content` longtext NOT NULL,
  `p_title` text NOT NULL,
  `p_photo` text NOT NULL,
  `p_small` text NOT NULL,
  `p_thumb` text NOT NULL,
  `p_up` bigint(20),
  `p_down` bigint(20),
  PRIMARY KEY  (`p_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=229 ;
select * from photos order by (p_up - p_down) desc;
SELECT * FROM photos ORDER BY (p_up-p_down) DESC LIMIT 10