Intereting Posts
Многопользовательский поиск в PHP / MySQL php – многошаговая форма с загрузкой файла Каков самый быстрый и эффективный способ хранения и получения изображений, когда у вас есть миллионы пользователей на сервере LAMP? Что такое www.conf? Laravel: Слишком мало аргументов для функции Illuminate \ Support \ Manager :: createDriver () Индикатор выполнения Curl PHP (процент возврата обратного вызова) Yii RBAC: доступ к определенным элементам / строкам Как установить UTF8 на PHP при подключении к ACCESS 2007 (ODBC) Каков наилучший способ хранения переменных конфигурации в PHP? Временные отметки начала и конца месяца Учитывая, что письмо является сырым текстом, как я могу его отправить с помощью PHP? Laravel Красноречивое отношение к многим, динамически добавляя запрос к связанной таблице Развертывание / сворачивание divs Номер формата mc_gross PayPal? PHP – обнаружение отключения удаленного хоста

MySql рандомизирует последние 10 строк

Мне нужна помощь в том, как рандомизировать последние 10 строк записей MySql.

$mysqld = mysql_query(select * from table where amount > amount2 and code = '$code' order by time DESC limit 1); 

Из приведенного выше утверждения мне нужно рандомизировать последние 10 строк, упорядоченных по времени, но ограниченных только 1 для отображения.

EDIT : Другими словами, мне нужно, чтобы таблица упорядочивалась по времени, а затем мне нужно сосредоточиться на последних 10 строках. Из этих последних 10 строк мне нужно выбрать один, и он должен быть случайным, какой я получаю.

Это возможно?

благодаря

Предполагая, что time – это время, когда была вставлена ​​запись, вы получите последние 10 строк из таблицы:

 SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code' ORDER BY `time` DESC LIMIT 10 

Теперь вы можете использовать результат как временную таблицу, сортировать ее случайным образом (так как это всего лишь 10 строк) и возвращать одну строку:

 SELECT * FROM ( SELECT * FROM `table` WHERE `amount` > `amount2` AND `code` = '$code' ORDER BY `time` DESC LIMIT 10 ) AS temptable ORDER BY RAND() LIMIT 1 

Пытаться….

 SELECT * FROM (SELECT * FROM yerTable ORDER BY id DESC LIMIT 10) AS tmp ORDER BY RAND() LIMIT 1 

Очевидно, замените id любым другим отдельным столбцом, если это необходимо.