> 백엔드 개발 > PHP 튜토리얼 > 来帮我看看这个mysql语句该怎么写!

来帮我看看这个mysql语句该怎么写!

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-23 13:28:12
원래의
971명이 탐색했습니다.

test
name      add           num

a               wefsv         3

b               asdf          4
b               wers         9
b               w1rs         10

as             asdf          11
as             wers         12
as            w3rs         13

例如上面这个表,我需要用select * from test......

来选出如下结果(每个name中num最大的那个,只要一行,其它不管!)
a               wefsv         3
b               w1rs         10
as            w3rs         13

再多此一问,如果要选择2行怎么办?

b               wers         9
b               w1rs         10

as             wers         12
as            w3rs         13

a               wefsv         3


回复讨论(解决方案)

slect name,add,num from test group by add order by add desc

slect name,add,num from test group by add order by add desc


大神!不行啊!每个选出num不是最大的

每个name最大的一行
select *
from test a
where not exists (select 1 from test where name=a.name and num>a.num);

第一问

select * from (select * from test order by num desc) t group by name
로그인 후 복사
로그인 후 복사
name add   num a    wefsv 3 as   w3rs  13 b    w1rs  10 
로그인 후 복사
로그인 후 복사

第一问

select * from (select * from test order by num desc) t group by name
로그인 후 복사
로그인 후 복사
name add   num a    wefsv 3 as   w3rs  13 b    w1rs  10 
로그인 후 복사
로그인 후 복사

1 行

select * from test a where 0 = (select count(*) from test where name = a.name and num > a.num)

2 行

select * from test a where 2 > (select count(*) from test where name = a.name and num > a.num)

1 行

select * from test a where 0 = (select count(*) from test where name = a.name and num > a.num)

2 行

select * from test a where 2 > (select count(*) from test where name = a.name and num > a.num)



太牛了!昨天我弄了半小时都弄不出来!,谢谢!你这方法我感觉最好!

问题二

select * from test t where 2>(select count(*) from test where num>t.num and name=t.name);
로그인 후 복사
name add   num a    wefsv 3 b    wers  9 b    w1rs  10 as   wers  12 as   w3rs  13 
로그인 후 복사


所以问题一的又一写法是
select * from test t
 where  1>(select count(*) from test1 where num>t.num and name=t.name)

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿