我有一个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语句以获取具有最大值的行吗?
答案 0 :(得分:0)
SELECT * FROM my_table WHERE x BETWEEN... AND y BETWEEN... ORDER BY value DESC LIMIT 1