2010-11-23 237 views
14

我需要能够根据ID从表中选择两条记录。在一个MySQL命令中选择最大和最小记录

我需要的第一个,最后一个(因此最小值和最大值)

IE。

表:客户

id name 

1  Bob 
50 Bob 

任何想法?

感谢

+2

查看手册的技巧丢失:http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_max – Tommyixi 2016-04-01 21:27:10

回答

35
SELECT MIN(id), MAX(id) FROM tabla 

编辑:如果您需要以检索该行的你可以这样做值:

SELECT * 
FROM TABLA AS a, (SELECT MIN(id) AS mini, 
          MAX(id) AS maxi 
        FROM TABLA) AS m 
WHERE m.maxi = a.id 
     OR m.mini = a.id; 

HTH,问候。

+0

谢谢。这非常有帮助。 – Dewan159 2012-11-02 11:31:42

1

这是你在找什么?

select id, name from customers where id = (select max(id) from customers) 
union all 
select id, name from customers where id = (select min(id) from customers) 

现在我已经测试了这种类型的查询我有权访问的MySQL数据库,它的工作原理。我查询:

SELECT nome, livello 
FROM personaggi 
WHERE livello = (
SELECT max(livello) 
FROM personaggi) 
+0

这个分组是否正确?它有效吗? – SubniC 2010-11-23 09:45:28

+0

这不起作用 - 提供无效的分组错误。 – TheBounder 2010-11-23 09:49:39

-3

SELECT MIN(值),MAX(值)FROM表

0

使用LIMIT子句中的MySQL:

(SELECT ID,名称来自客户的ORDER BY ID DESC LIMIT 0,1)

UNION

(SELECT ID,名称来自客户的ORDER BY ID ASC LIMIT 0,1);