Выбор случайных строк в MySQL

Я знаю об одной небольшой компании, которые отправили продукт почтового сервера в рынок. У них было по крайней мере 2 человека рабочий полный рабочий день на проекте.

кроме того, у крупного игрока в бизнесе IT есть несколько сотрудников, использующих D в больших внутренних проектах.

Далее я знаю об одном финансировании предприятия поиска компании, несколько (по крайней мере 4) сотрудники в меньших компаниях с помощью D или неполный рабочий день или полный рабочий день и по крайней мере пара (включая меня) активно поиск возможностей на консультационном рынке.

я, вероятно, не учел некоторых, что я должен был знать о, и вероятно некоторые, которых я не услышал о, но который все еще существует, поскольку вышеупомянутое - более или менее это, я знаю меня через сообщество.

небольшой процент А моего текущего дохода прибывает из D.

13
задан Eric 16 August 2009 в 07:06
поделиться

3 ответа

Добавьте в таблицу столбец, который будет содержать метку времени UNIX.

Один раз в день или в любой удобный для вас период времени вы запускаете запрос, который обновляет этот столбец.

В в этом случае ваш запрос должен выполняться в полночь и выглядеть примерно так.

UPDATE table SET rand_id = (UNIX_TIMESTAMP() + (RAND() * 86400));

Затем для получения строк вы используете запрос, подобный этому.

SELECT * FROM table WHERE rand_id > UNIX_TIMESTAMP() ORDER BY rand_id ASC LIMIT 20

Использование столбца с заранее определенным случайным значением избавляет вас от необходимости запускать функция рандомизации для каждой отдельной строки в таблице для каждого отдельного запроса к странице.

3
ответ дан 1 December 2019 в 20:00
поделиться

Другая возможность - сгенерировать случайную перестановку , сохранить ее в сеансе (или только ту часть, которая вам нужна, алгоритм легко адаптируется) и получить вопросы, когда они вам нужны.

0
ответ дан 1 December 2019 в 20:00
поделиться

Вы можете использовать функцию rand в MySQL, чтобы упорядочить строки, а затем взять первые 10 (или сколько угодно) с ограничением .

select * from table order by rand() limit 10

Если вам нужны только математические вопросы:

select * from table where type = 1 order by rand() limit 10
29
ответ дан 1 December 2019 в 20:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: