ddv88
@ddv88
Binance Futures

Возможно ли задать порядок вывода MySQL с использованием IN?

Существует массив с id файлов. Для каждого файла нужно получить количество скачиваний из ячейки count.
Есть ли возможность вернуть выборку в том же порядке в каком она задана в массиве?
$name = array("file1.exe", "file2.exe", "file3.exe");

foreach ($name as $id) {
    $md5[] = preg_replace('/[^0-9]/', '', md5($id));
}

$md5 = implode(', ', $md5);
$sql->select("count", "download", "WHERE `name` IN ($md5)");

while ($row = $sql->gra()) {
    $count[] = $row['count'];
}
  • Вопрос задан
  • 2226 просмотров
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
ORDER BY FIELD(name, $md5)
Ответ написан
Комментировать
order by fint_in_set(name, '<?=$md5?>');
Ответ написан
@BugIg
$md5 = implode(', ', $md5);
$q = 'case name ';
 foreach ($md5 as $k => $val) {
     $q.= ' when ' . $val. ' then ' . ($k + 1);
 }
 $q.= ' end';

SELECT count
FROM download
WHERE name IN (' . $md5 . ')
ORDER BY ' . $q;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы