У меня есть таблица под названием «Статьи». Структура этой таблицы выглядит следующим образом: id (уникальный), категория (категория статьи, т. Е. Развлечения), название (название статьи), изображение (URL-адрес изображения статьи), ссылка (URL-адрес статья), счетчик (количество просмотров, которое имеет статья), dateStamp (дата публикации статьи).Получение случайных записей, основанных на категории
Предположим, я хочу распечатать 6 случайных развлекательных статей. Легкий, но менее эффективный способ обойти это делает что-то вроде
$result = $db->query("SELECT * FROM Articles WHERE category = 'entertainment' ORDER BY RAND() LIMIT 6);
Вместо этого, как я могу сделать это более эффективно? Я знаю, что есть несколько сайтов, объясняющих альтернативы ORDER BY RAND(), но я просто не понимаю этих альтернатив. Я хочу понять, основываясь на моей структуре. Я пробовал несколько вещей, перетасовывая ассоциативный массив для создания случайного генератора, но все закончилось разочарованием, потому что я не мог заставить его работать правильно. Как я могу получить 6 случайных развлекательных статей, распечатанных без использования ORDER BY RAND()?
Ваш большой стол (скажем, более 1000 записей)? Если нет, вы можете ВЫБРАТЬ все данные и использовать PHP, чтобы получить случайную строку внутри результата ... – Random
@Random Это сейчас не большой, но в будущем это станет большим, поэтому я хочу, чтобы сейчас это решение, поэтому мне не нужно возвращаться и исправлять. – user2896120