Как правильно вывести случайные записи? [дубликат]

151
14 июля 2019, 10:20

На данный вопрос уже ответили:

  • Случайная выборка записей mysql 8 ответов

Есть вот такой вот простой код

$ids = rand(1, 500000);
SELECT * FROM questions WHERE id = '$ids' ORDER BY date DESC limit 40

У меня выводит лишь одну случайную запись. Как мне вывести 40 случайных записей? Знаю про rand() в mysql, но такой запрос выполняется секунд 10-15.

Answer 1

Решил сам:

$maxx=20000;  // -- числа будут от 1 до $maxx
$maxn=40;   // -- всего $maxn чисел в массиве
$r=""; // эту строку можно удалить
$x=array();    // здесь будет массив наших чисел
$tmp=array();  // временный массив
for ($i=0; $i<$maxn; $i++) {
   do {
      $a=rand(1,$maxx);
   } while(isset($tmp[$a]));
   $tmp[$a]=1;
   $x[]=$a;
   $r.="$a,"; // эту строку можно удалить
}
unset($tmp);
$r=substr($r,0,strlen($r)-1).""; // эту строку можно удалить

$query = "SELECT * FROM questions WHERE id in ($r) ORDER BY date DESC limit 40"; 
READ ALSO
Проблема с file_get_contents

Проблема с file_get_contents

Вечер добрыйНе могу понять почему при отправке текста на стену в группу через метод wall

146
Проблема при работе WordPress

Проблема при работе WordPress

Ребят, прохожу уроки по WordPress, два дня пытаюсь найти ошибку не могуСтили не подключаются

150
SQL сортировка поиска по LIKE

SQL сортировка поиска по LIKE

Необходимо результат запроса LIKE отсортировать в порядке нахождения по столбцам

154
с++ &ldquo;морской бой&rdquo;

с++ “морской бой”

Загорелся сделать морской бой на с++ чисто для себя (с++ еще осваиваю)Сделал так чтоб программа ставила метку на нужных координатах

159