Конечно, если вы хотите показывать пользователю одно случайно выбранное изображение при каждом щелчке, вы можете сделать что-то вроде
SELECT imagename FROM images ORDER BY RAND() LIMIT 1;
, чтобы изображение отображалось. Но это печально известный плохоэффективный способ получить случайный элемент.
Вы можете добавить столбец в свою таблицу изображений
DOUBLE random_choice;
Затем, когда вы вставляете данные в таблицу, установите random_choice на RAND()
.
INSERT INTO images (whatever, whatever, random_choice)
VALUES (??, ??, RAND();
Затем, выбирая случайное изображение, вы делаете
SELECT imagename FROM images WHERE random_choice <= RAND() LIMIT 1;
Это способ, которым Википедия реализует «показать мне случайную статью». Чтобы сделать это эффективным, вам понадобится индекс на random_choice
.
. Если вы никогда не должны показывать одно и то же изображение одному и тому же пользователю дважды, пока этот пользователь не просмотрит все изображения, это много проблему сложнее решить, особенно если у вас увеличивается количество пользователей. Сможете ли вы уклониться от этого требования?