Почему запрос к БД возвращает отсортированные по порядку значения и как это исправить?

Приветствую.
Есть довольно простой сниппет и при запросе к БД значения сортируются по возрастанию, а этого хотелось бы избежать:
<?php
// указаны ID строк фоток в БД
$photos = '5,3,1,4,2';
// формируем запрос
$sql = "SELECT * FROM images WHERE id IN (".$photos.")";
$query = $modx->query($sql);
// выполняем запрос
$photos = $query->fetchAll();

// выводим результат
print_r($photos);

//получаем отсортированный по возрастанию массив (упрощенный вид)
1.png
2.png
3.png
4.png
5.png
Как этого избежать и выводить записи именно в таком порядке, который указан в переменной $photos?
weranda
04 августа 2021, 08:12
modx.pro
409
0

Комментарии: 4

Роман
04 августа 2021, 10:14
0
Используйте ORDER BY и сортируйте, как вам угодно. По умолчанию сортировка идет по PRIMARY индексу, в вашем случаи по ID.
    weranda
    04 августа 2021, 10:16
    0
    Мне нужен такой порядок, который указан в переменной $photos. Как это сделать?
      Роман
      04 августа 2021, 10:17
      +1
      ORDER BY FIELD(id, ".$photos.")
        weranda
        04 августа 2021, 10:22
        0
        Спасибо. А я думал, что это сам MODX так делает запрос.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4