Ако желите да добијени запис буде наређено насумично , требало би да користите следеће кодове према неколико база података.
Ево питања: која је потреба да се дохвати насумични запис или ред из базе података?
Понекад ћете можда желети да прикажете насумичне информације као што су чланци, везе, странице , итд., вашем кориснику.
Ако желите да преузмете насумичне редове из било које базе података, морате да користите неке измењене упите у складу са базама података.
Ако желите да вратите насумични ред са МИ СКЛ, користите следећу синтаксу:
SELECT column FROM table ORDER BY RAND () LIMIT 1;
SELECT column FROM table ORDER BY RANDOM () LIMIT 1;
SELECT TOP 1 column FROM table ORDER BY NEWID ();
SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1;
SELECT column RAND () as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLY;
Да бисмо практично разумели овај концепт, погледајмо неке примере коришћења МиСКЛ базе података. Узмите у обзир да имамо ставке табеле креиране у бази података са следећим подацима:
Табела: ставке
ИД | Назив производа | Итем_Куантити | Цена одвојено | Датум куповине |
---|---|---|---|---|
1 | Сапун | 5 | 200 2021-07-08 | |
2 | Паста за зубе | 2 | 80 | 2021-07-10 |
3 | Хемијска оловка | 10 | педесет | 2021-07-12 |
4 | Боца | 1 | 250 | 2021-07-13 |
5 | Четка | 3 | 90 | 2021-07-15 |
Претпоставимо да желимо да преузмемо било који насумични запис из табеле ставки.
виндов.опен јавасцрипт
Написаћемо упит на следећи начин:
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Можемо добити следеће резултате:
ИД | Назив производа | Итем_Куантити | Цена одвојено | Датум куповине |
---|---|---|---|---|
3 | Хемијска оловка | 10 | двадесет | 2021-07-12 |
Хајде сада да покушамо још једном да извршимо исти упит.
mysql> SELECT * FROM items ORDER BY RAND () LIMIT 1;
Можемо добити следеће резултате:
ИД | Назив производа | Итем_Куантити | Цена одвојено | Датум куповине |
---|---|---|---|---|
5 | Четка | 3 | 90 | 2021-07-15 |
Из горњих резултата можемо закључити да оба пута добијамо различите записе као излаз иако смо два пута извршили исти упит. Функција РАНД () је оба пута изабрала насумичне записе за исти упит из једне табеле. Стога, чак и ако поново извршимо исти упит, сваки пут ћемо добити другачији излаз. Постоји ретка могућност добијања истог записа узастопно коришћењем функције РАНД ().
Сада, претпоставимо да желите да се сви записи табеле преузимају насумично.
Да бисмо то урадили, потребно је да извршимо следећи упит:
mysql> SELECT * FROM items ORDER BY RAND ();
Можемо добити следеће резултате:
ИД | Назив производа | Итем_Куантити | Цена одвојено | Датум куповине |
---|---|---|---|---|
4 | Боца | 1 | 250 | 2021-07-13 |
5 | Четка | 3 | 90 | 2021-07-15 |
1 | Сапун | 5 | 200 | 2021-07-08 |
2 | Паста за зубе | 2 | 80 | 2021-07-10 |
3 | Хемијска оловка | 10 | педесет | 2021-07-12 |
Такође постоји могућност добијања различитих распореда записа ако поново извршимо функцију РАНД () на табели запослених.