logo

SQL ПОРЪЧКА ПО СЛУЧАЙЕН РЕД

Ако искате полученият запис да бъде подредени на случаен принцип , трябва да използвате следните кодове според няколко бази данни.

Ето един въпрос: каква е необходимостта от извличане на произволен запис или ред от база данни?

Понякога може да искате да покажете произволна информация като статии, връзки, страници и т.н. на вашия потребител.

превъртането на мишката не работи

Ако искате да извлечете произволни редове от някоя от базите данни, трябва да използвате някои променени заявки според базите данни.

    Изберете произволен ред с MySQL:

Ако искате да върнете произволен ред с MY SQL, използвайте следния синтаксис:

 SELECT column FROM table ORDER BY RAND () LIMIT 1; 
    Изберете произволен ред с Postgre SQL:
 SELECT column FROM table ORDER BY RANDOM () LIMIT 1; 
    Изберете произволен ред с SQL Server:
 SELECT TOP 1 column FROM table ORDER BY NEWID (); 
    Изберете произволен ред с оракул:
 SELECT column FROM (SELECT column FROM table ORDER BY dbms_random.value) WHERE rownum = 1; 
    Изберете произволен ред с IBM DB2:
 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 () в таблицата на служителите.