У меня есть база данных с оцененными элементами в ней. Когда я хочу, чтобы отобразить все элементы из определенной категории и сортировать результаты по скорости, чем по количеству подобных, это легко, и это работает:Mysql: случайный сортировать, чем сортировать по определенному столбцу
$query = "SELECT * FROM infos WHERE category = '".$categories."'";
$query .= "ORDER BY `rate` DESC, `like` DESC";
Проблема заключается в том, когда результаты имеют одинаковое значение, они показывают в алфавитном порядке. Итак, я хотел бы рандомизировать базу данных, прежде чем сортировать ее по курсу и т.п. Я просто хочу, чтобы тот же шанс на все предметы и те, которые имеют одинаковое значение, не должны быть благоприятными в алфавитном порядке.
Я попытался это, но он не работает:
$query = "SELECT * FROM infos WHERE category = '".$categories."'";
$query .= "ORDER BY RAND(), ORDER BY `rate` DESC, `like` DESC";
Может кто-нибудь мне помочь? Я застрял.
Что не получилось? Каков был результат вашего запроса? – zeantsoi
@zeantsoi Это приводит к ошибке синтаксиса MySQL - это должно было быть обнаружено и сообщено. – user2246674
Обязательно выполните 1) тестовые запросы в CLI или «SQL Studio»; 2) корректно обрабатывать ошибки в SQL-запросах с PHP; и 3) использовать заполнители/подготовленные заявления. – user2246674