Мне нужна помощь в том, как рандомизировать последние 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 любым другим отдельным столбцом, если это необходимо.