如何正确使用RAND语法()

时间:2013-10-21 10:31:22

标签: sql delphi ms-access delphi-xe2

尝试选择4个随机行时不断出错。我不确定我是否有这样做的snytax。另请注意我使用的是访问数据库。另请注意.. ManaTypes是一个字符串数组。

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;

在查询表达式'Color =“

中获取错误'snytax错误(缺少运算符)

1 个答案:

答案 0 :(得分:2)

尝试

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