Ето бърз начин за връщане на произволни редове от таблица в MariaDB.
Да предположим, че имаме таблица, наречена Pets
със следните данни:
SELECT
PetId,
PetName
FROM Pets;
Резултат:
+-------+---------+ | PetId | PetName | +-------+---------+ | 1 | Fluffy | | 2 | Fetch | | 3 | Scratch | | 4 | Wag | | 5 | Tweet | | 6 | Fluffy | | 7 | Bark | | 8 | Meow | +-------+---------+
Можем да използваме RAND()
функция във връзка с ORDER BY
клауза и LIMIT
ключова дума, за да върне произволни редове от тази таблица.
Пример:
SELECT
PetId,
PetName
FROM Pets
ORDER BY RAND()
LIMIT 5;
Примерен резултат:
+-------+---------+ | PetId | PetName | +-------+---------+ | 5 | Tweet | | 7 | Bark | | 1 | Fluffy | | 8 | Meow | | 3 | Scratch | +-------+---------+
И ако го стартирам отново, получавам това:
+-------+---------+ | PetId | PetName | +-------+---------+ | 3 | Scratch | | 8 | Meow | | 4 | Wag | | 7 | Bark | | 6 | Fluffy | +-------+---------+
И така нататък...
Имайте предвид, че това е доста интензивно и не трябва да се използва на по-големи маси.
Когато използва тази техника, MariaDB чете всички редове в таблицата, генерира произволна стойност за всеки от тях, подрежда ги и накрая прилага LIMIT
клауза. Това ще доведе до много бавна заявка за големи таблици.
Вижте Извадка от данни:Техники за ефективно намиране на произволен ред на уебсайта на MariaDB за техники, които са по-подходящи за по-големи таблици.