2013-10-21 26 views
0

当它尝试选择4个随机行时会出现错误。不知道我是否有这样做的权利。另外请注意我正在使用访问分贝。另请注意。ManaTypes是一个字符串数组。如何正确使用RAND()的语法()

with adoquery1 do 
begin 
    close; 
    sql.Clear; 
    sql.Add('SELECT * '); 
    sql.Add('FROM Cards '); 
    sql.Add('WHERE Color='+ManaTypes[i]+' ORDER BY RAND() Limit 4'); 
    open; 
end; 

获取错误 'snytax错误(缺少操作员)在查询表达式' 颜色=”

+0

也可以尝试'ORDER BY Rnd'当然 –

+0

是:D还ORDER BY Rnd限制4没有工作,或者同样的错误 –

+0

你是否在'cards'之后添加了一个空格? –

回答

2

尝试

sql.Add(
    'SELECT Top 4 * 
    FROM 
    (
     SELECT *, Rnd(ID) AS RandomValue 
     FROM Cards 
     WHERE Color = "' + ManaTypes[i] + '" 
    ) 
    ORDER BY RandomValue' 
+0

这工作或至少跑了..但不得不交换'和“大约 –

+1

也似乎给每次相同的4个随机的? –

+0

仍然有效,但仍然相同4个随机的..随机不工作,就像我认为它应该? –