Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Знатокам SQL 


Turalyon   (2001-12-17 10:12) [0]

Привет всем.
Есть задача - необходимо чтобы в результате запроса записи были в случайном порядке (типа экзамен). Есть ли какой нить способ сделать их случайными прямо в запросе?
Я придумал способ как это сделать "в ручную" создаю структуру, в которй храню ключи от результата SQL запроса, потом их "перемешиваю" и выдаю по одному... но это как мне кажется через з..цу может есть способ попроще???



Alexandr   (2001-12-17 10:26) [1]

на SQL видимо никак
только на клиенте ручками.
и в слечае парадокса это нормально.



gek   (2001-12-17 10:30) [2]

Я делал так сначала генерил числа случайные ну а потом запрос делал типа

SetCif:set of 1..255;
SetCif:=[];
k:word;
CountProhod:word;
CountProhod:=0;
repeat
k:=random(200);
if(not (k in SetCif))and(k <> 0) then
begin
SetCif:=SetCif +[k];
inc(CountProhod);
end;
until CountProhod = 10;//кол-во вопросов

select * from mytable where id in SetCif все нормально работает



Turalyon   (2001-12-17 10:41) [3]

2gek
А разве в результате выполнения запроса оно не выберет все по порядку следования в физичексой таблице? Мне просто не совсем понятно как работает оператор in. То есть я понимаю как он работает, только не понятно, в каком порядке он будет выбирать записи из списка SetCif.



gek   (2001-12-17 10:54) [4]

Когда я все это дело делал у меня такой вопрос не стоял. Честно говоря
не могу просветить. Для меня было главное получить случайные записи.
Но вот че на ум приходит - можно таким же образом отфильтровать таблицу не прибегая к SQL запросу.
Да если тебе надо как то упорядочить записи используй ORDER BY для SQL
ну и индексы для обычной таблицы



Turalyon   (2001-12-17 11:08) [5]

Мне наоборот не надо их упорядочивать, а перемешать надо :)
Я попробовал сейчас в SQLExplorer -е все работает, причем в результате запроса выдается сначала та запись, которая стоит первая в списке, потом след. и т.д. так что если они рандомные, то все ок. СПАСИБО БОЛЬШОЕ!!!!




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.022 c
3-52501           ripp                  2001-12-15 15:40  2002.01.17  
Повтор. Помогите!


1-52531           Трынкин Сергей        2001-12-27 16:24  2002.01.17  
Снова по поводу курсора мыши


6-52624           maxi                  2001-10-22 16:17  2002.01.17  
Как DCOM клиенту узнать об изменениях данных на сервере/базе


3-52476           Jon                   2001-12-13 12:56  2002.01.17  
Подключение к mySql в Delphi 5


14-52650          paul_shmakov          2001-11-21 01:13  2002.01.17  
подсветка синтаксиса в форуме