Разбиение на страницы MySQL со случайным упорядочением
Поддержание случайного порядка в разбиении на страницы MySQL может создать проблемы при попытке предотвратить дублирование результатов и обеспечить различные наборы первая страница. Вот решения этих проблем:
1. Предотвращение дублирования результатов
Чтобы исключить ранее просмотренные результаты на последующих страницах, дополните свой SQL-запрос критерием исключения, основанным на ранее выбранных строках. Используйте массив PHP для хранения полученного контента и включите в запрос условия для исключения:
$excludeIDs = []; // Array to store excluded IDs
$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
$query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";
2. Различные результаты на первой странице
Да, нумерацию страниц можно использовать со случайным упорядочиванием, вводя начальное значение в функцию RAND(). Изменяя начальное число (например, в зависимости от времени или IP-адреса пользователя), вы можете каждый раз получать разные наборы результатов.
3. Использование RAND(SEED)
Укажите начальное значение с помощью RAND(SEED), чтобы повлиять на случайный порядок. Установив постоянное целое число в качестве начального числа, вы можете управлять последовательностью результатов:
$seed = 521; // Example seed value
$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3