Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何正确使用RAND()的语法_Sql_Delphi_Ms Access_Delphi Xe2 - Fatal编程技术网

Sql 如何正确使用RAND()的语法

Sql 如何正确使用RAND()的语法,sql,delphi,ms-access,delphi-xe2,Sql,Delphi,Ms Access,Delphi Xe2,当它尝试选择4个随机行时,不断出现错误。我不确定我这样做是否正确。还请注意,我使用的是access db。另请注意。。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;

当它尝试选择4个随机行时,不断出现错误。我不确定我这样做是否正确。还请注意,我使用的是access db。另请注意。。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 error(缺少运算符)”

Try

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

另外,请尝试
按Rnd下单
当然可以:D也按Rnd下单限制4也不起作用相同的错误您是否在
卡片
后添加空格?嗨,格伦,我添加了一个正确的答案,即删除此问题并向该副本添加一个赏金。我会在那里设置赏金,但我没有时间测试答案,因为我既没有时间也没有访问权限(更准确地说,我甚至不想访问)。这起作用了,或者至少运行了..但是必须交换'and',而且每次似乎都给出相同的4个随机数?仍然有效,但仍然是相同的4个随机数。。random不象我认为的那样工作吗?