我正在使用这个简单的查询来对ms-access数据库使用随机排序:
SELECT pk FROM TABLE ORDER BY Rnd(pk) asc
当我使用Microsoft Access 2010测试它时,它工作正常
但是,当我使用经典asp调用此查询时,随机排序不起作用。
这是我的代码:
set Rs = Server.CreateObject("ADODB.Recordset") Rs.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dbfolder") & "\dbname.mdb" Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(pk) asc" Rs.CursorType = 3 Rs.CursorLocation = 2 Rs.LockType = 3 Rs.Open() do while not Rs.eof 'do stuff Rs.Movenext loop
您只需要对随机生成器“加盐”即可:
Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(-Timer() * [pk]) Asc"