Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql查询以选择PHP中的第二个和第三个最高值以及最后一个条目_Php_Mysql_Kohana - Fatal编程技术网

Mysql查询以选择PHP中的第二个和第三个最高值以及最后一个条目

Mysql查询以选择PHP中的第二个和第三个最高值以及最后一个条目,php,mysql,kohana,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 现在我需要选择100100210031004的最后输入价格 结果: 1001 - 50, 1002 - 80, 1003 -700, 1004 -10. 第二高的值是80用户1002 第三高值是50用户1001Mmm,不确定

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

SNO  Userid  Price

1    1004   10
2    1002   20
3    1001   300
4    1003   700
5    1002   80
6    1001   50
现在我需要选择100100210031004的最后输入价格

结果:

1001 - 50, 1002 - 80, 1003 -700, 1004 -10.
第二高的值是80用户1002
第三高值是50用户1001

Mmm,不确定我是否理解,但请尝试以下操作:

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

您可以通过以下方法来实现这一点:根据组,按
Userid
SNO
的降序给出行号

查询

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; 
示例查询:

SELECT * FROM table ORDER BY Price LIMIT 2 OFFSET 1 DESC
如果我理解你的问题

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

据我所知,您需要第二、第三高和最小值。

是的,明白。您的Ans适合选择2和3高值。但用户最后一个地方的出价值只需要选择。用户A=100,用户B=200,用户A=300,用户C=300,用户A=20,用户B=10。现在需要选择用户A价格=20,用户B=10。用户C=300。我不确定我是否很了解你!您想要一个按高值顺序插入3-1个最新行的列表吗?谢谢。用户最后一个地方的出价值只需要选择。用户A=100,用户B=200,用户A=300,用户C=300,用户A=20,用户B=10。现在需要选择用户A价格=20,用户B=10。用户C=300。然后得到2和3的高价值?谢谢。用户最后一个地方的出价值只需要选择。用户A=100,用户B=200,用户A=300,用户C=300,用户A=20,用户B=10。现在需要选择用户A价格=20,用户B=10。用户C=300。然后得到2和3的高值?