2013-10-21 62 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個隨機的..隨機不工作,就像我認爲它應該? –