Ако искате полученият запис да бъде подредени на случаен принцип , трябва да използвате следните кодове според няколко бази данни.
Ето един въпрос: каква е необходимостта от извличане на произволен запис или ред от база данни?
Понякога може да искате да покажете произволна информация като статии, връзки, страници и т.н. на вашия потребител.
превъртането на мишката не работи
Ако искате да извлечете произволни редове от някоя от базите данни, трябва да използвате някои променени заявки според базите данни.
Ако искате да върнете произволен ред с MY SQL, използвайте следния синтаксис:
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;
За да разберем тази концепция на практика, нека видим някои примери, използващи базата данни MySQL. Да приемем, че имаме таблица с елементи, създадени в базата данни със следните данни:
Таблица: елементи
документ за самоличност | Име на предмета | Артикул_Количество | Артикул_Цена | Дата на закупуване |
---|---|---|---|---|
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 |
Да предположим, че искаме да извлечем произволен запис от таблицата с елементи.
bash разделя низ по разделител
Ще напишем заявката, както следва:
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 |
От горните резултати можем да заключим, че получаваме различни записи като изход и двата пъти, въпреки че сме изпълнили една и съща заявка два пъти. Функцията RAND () е избрала произволни записи и двата пъти за една и съща заявка от една таблица. Следователно, дори да изпълним същата заявка отново, ще получаваме различен изход всеки път. Има рядка възможност за получаване на един и същ запис последователно с помощта на функцията RAND ().
Сега да предположим, че искате всички записи на таблицата да бъдат извлечени на случаен принцип.
За да го направим, трябва да изпълним следната заявка:
обработка на низове в c++
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 |
Има също така възможност за получаване на някои различни подредби на записи, ако изпълним отново функцията RAND () в таблицата на служителите.