MySQL和asp选择区域中的最高行

时间:2017-06-09 23:02:24

标签: mysql asp.net

我有一个MySQL表,每个条目有3个字段。 x和y是主键和一个值。我想选择给定区域中的最高行。

举个例子: 表格如下:

我想请求获取具有最高条目的行,其中x> = 2且x< 4且y> = 1且y< = 3.在此示例中,这将是行x = 2,y = 3,值= 0.6。

目前,我的.asp文件中的代码如下所示:

if reqType="getDBMaxValue" then
  resp="[ "
  delim=""
  'sSQL="SELECT MAX(value) AS value FROM "&tableName&" WHERE x >= "&xStart&" AND x <= "&xEnd&" AND y >= "&yStart&" AND y <= "&yEnd
  sSQL="SELECT MAX(value) AS value FROM "&tableName&" WHERE x >= "&xStart&" AND x <= "&xEnd&" AND y >= "&yStart&" AND y <= "&yEnd
  set rs=Conn.Execute(sSQL)
  do until rs.EOF
    obj="{ " & chr(34) & "value" & chr(34) & ": " & chr(34) & rs.Fields("value") & chr(34)
    obj=obj & "} "
    resp=resp & delim & obj
    delim=" , "
  rs.MoveNext
  loop
  resp=resp & " ]"

  rs.Close
  response.ContentType="application/json"
  Response.Write(resp)
end if

这会返回正确的值,但我没有得到x和y。

使用此代码:

if reqType="getDBvalues" then
  resp="[ "
  delim=""
  sSQL="SELECT * FROM "&tableName&" WHERE x >= "&xStart&" AND x <= "&xEnd&" AND y >= "&yStart&" AND y <= "&yEnd
  set rs=Conn.Execute(sSQL)
  do until rs.EOF
    obj="{ " & chr(34) & "x" & chr(34) & ": " & chr(34) & rs.Fields("x") & chr(34)
    obj=obj & ", " & chr(34) & "y" & chr(34) & ": " & chr(34) & rs.Fields("y") & chr(34)
    obj=obj & ", " & chr(34) & "value" & chr(34) & ": " & chr(34) & rs.Fields("value") & chr(34)
    obj=obj & "} "
    resp=resp & delim & obj
    delim=" , "
  rs.MoveNext
  loop
  resp=resp & " ]"

  rs.Close
  response.ContentType="application/json"
  Response.Write(resp)
end if

我收到整行(或行)。

有人知道如何写下MySQL语句以获取具有最大值的行吗?

1 个答案:

答案 0 :(得分:0)

SELECT * FROM my_table WHERE x BETWEEN... AND y BETWEEN... ORDER BY value DESC LIMIT 1