如何正确使用 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("")) [重复]