Я пытаюсь выбрать случайную запись в таблице, где «Card_Rarity равна определенному значению, например,« Легендарная ». Поэтому он проверит все записи, где карты являются этой редкостью, а затем выберет случайнуюи загрузите его в запрос.
Я попытался использовать «ORDER BY Rand () LIMIT 1», но по какой-то причине я получил синтаксическую ошибку. Затем я также попытался использовать цикл for и использовать qryCards.затем, но это также не работает должным образом
Я пробовал это:
qryCards.SQL.Add('SELECT * FROM tblCards WHERE Card_Rarity = "Legendary" ORDER BY RAND() LIMIT 1');
, но я получаю синтаксическую ошибку
Я также пробовал это:
with dmCards do
begin
qryCards.Close;
qryCards.SQL.Clear;
qryCards.SQL.Add('SELECT * FROM tblCards WHERE Card_Rarity = "Legendary"');
qryCards.Open;
Randomize;
iRandom := Random(qryCards.RecordCount) + 1;
for i := 1 to iRandom do
begin
qryCards.Next;
end;
ShowMessage(qryCards.FieldByName('Card_Name').AsString);
end;
Я ожидаю, что на выходе будет имя случайной карты этой особой редкости, но фактический вывод странный, и я не знаю точно, как его описать. Я поставил ShowMessages, чтобы попытаться отладить и когда iRandom= 2 ИЛИ 3 он дает мне то же имя карты, но если его 1, это дает мне другую карту (всего 3 легендарных карты)