Нет такого вопроса.
Подготовленные запросы ничем не отличаются от прямых.Число в обоих случаях равно точно так же.
Так что вы просто используете подготовленные запросы 100% времени , если в запросе используется хотя бы одна переменная,Период.Здесь нечего обсуждать.
И да, выполнение одного запроса быстрее, чем выполнение нескольких .
Ваш конкретный вопрос подходит и здесь.Просто запустите один подготовленный запрос вот так
$in = str_repeat('?,', count($fields) - 1) . '?';
$sql = "SELECT field, amount from achievement_list where field in($in)"
$stmt = $db->prepare($sql);
$types = str_repeat('s', count($fields));
$stmt->bind_param($types, ...$fields);
$stmt->execute();
$data = $statement->get_result()->fetch_all(MYSQLI_ASSOC);