如何正确使用 RAND() 的语法 [重复]

Posted

技术标签:

【中文标题】如何正确使用 RAND() 的语法 [重复]【英文标题】:How to correctly use syntax for RAND() [duplicate] 【发布时间】:2013-10-21 10:31:22 【问题描述】:

尝试选择 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 错误(缺少运算符)

【问题讨论】:

也可以试试ORDER BY Rnd 当然是的:D ORDER BY Rnd Limit 4 也没有同样的错误 cards 后面也加了空格吗? 嗨格伦,我添加了对***.com/questions/9937222/…的答案 正确的方法是删除此问题并为该副本添加赏金。我会在那里设置赏金,但我没有时间测试答案,因为我没有时间也没有访问权限(更准确地说,甚至不想拥有访问权限)。 【参考方案1】:

试试

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

【讨论】:

那行得通或至少运行了..但必须交换 ' 和 " 左右 似乎每次都给出相同的 4 个随机数? 仍然有效,但仍然是相同的 4 个随机数.. random 不像我认为的那样有效吗?

以上是关于如何正确使用 RAND() 的语法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 fso.GetAbsolutePathName(".") 检查后如何设置正确的语法 if (fso.FileExists("")) [重复]

SQL 命令错误:“4”附近的语法不正确 [重复]

使用Javascript更改输入值,语法正确[重复]

ORDER BY RAND()函数在mysql中执行需要很长时间[重复]

正则表达式检测语法正确的 URL [重复]

关键字“JOIN”附近的语法不正确。使用 asp.net [重复]