使用IN数组从数据库返回结果

时间:2013-06-13 02:54:34

标签: asp-classic

我想知道是否有人可以帮助我。

我有一个像这样的数组

fileArray = '2612(25).jpg', '2012(15).jpg', '2012(31).jpg', '2012(21).jpg', '2012(58).jpg'

现在我有以下代码。

Set DBConn = CreateObject("ADODB.Connection")
DBConn.Open strOLEDBString, strODBCUser, strODBCPass

SQL = "SELECT p, sum(vote) as likes FROM vote WHERE p in (" & fileArray & ") GROUP BY p ORDER BY sum(vote) desc"

Set rs = DBConn.Execute(SQL)

If rs.eof Then
    HTMLTable = HTMLTable & " Nothing returned"
Else 
    HTMLTable = HTMLTable & rs("p")
End If

结果只显示数组中的最后一个文件名,它应该显示所有文件名。

2 个答案:

答案 0 :(得分:1)

您需要循环通过ADO Recordset来获取所有记录:

...
Else
  Do While Not rs.eof
    HTMLTable = HTMLTable & "<tr><td>" & rs("p") & "</td></tr>"
    rs.MoveNext
  Loop
End If

答案 1 :(得分:0)

你的文件阵列声明周围需要“”。

fileArray = "'2612(25).jpg', '2012(15).jpg', '2012(31).jpg', '2012(21).jpg', '2012(58).jpg'"