Mysql查询选择PHP

时间:2016-11-03 13:18:42

标签: php mysql kohana

我需要从最后一个条目中选择2和3最高值的代码。

SNO  Userid  Price

1    1004   10
2    1002   20
3    1001   300
4    1003   700
5    1002   80
6    1001   50

现在我需要选择1001,1002,1003,1004的最后入场价格。

结果:

1001 - 50, 1002 - 80, 1003 -700, 1004 -10.

第二个最高值是80个用户1002 第三个最高值是50个用户1001

4 个答案:

答案 0 :(得分:2)

select * from price order by price desc limit 2,1
union
select * from price order by price asc limit 1

据我所知,你想要第二,第三和最小值。

答案 1 :(得分:1)

嗯,不确定我明白但是试试这个:

SELECT t.*
FROM YourTable t
WHERE NOT EXISTS(SELECT 1 FROM YourTable s
                 WHERE t.userid = s.userid
                   AND s.sno > t.sno)
ORDER BY t.price DESC
LIMIT 2

答案 2 :(得分:0)

您可以通过UseridSNO的降序基于组给出行号来实现此目的。

<强>查询

select t.`SNO`, t.`Userid`, t.`Price` from(
  select `SNO`, `Userid`, `Price`, (
    case Userid when @curA 
    then @curRow := @curRow + 1 
    else @curRow := 1 and @curA := `Userid` end 
  ) as `rn`
  from `your_table_name` t, 
  (select @curRow := 0, @curA := '') r 
  order by `Userid`, `SNO` desc
)t
where t.`rn` = 1; 

答案 3 :(得分:0)

示例查询:

SELECT * FROM table ORDER BY Price LIMIT 2 OFFSET 1 DESC

如果我理解你的问题!