Запрос по таблице - MySQL
Формулировка задачи:
Гуру, посоветуйте!
Есть таблица (PHP) с КОДАМИ (индексами) полей таблицы.
Не вся таблица и в особом порядке!!!
Можно ли одним запросом получить всю таблицу в нужном порядке??
Нашел такое:
SELECT * FROM TABLE_1 WHERE _id IN (4,1,2)
Но он все равно отсортировал их в 1, 2, 4
Пока что вынужден делать это в цикле!
Вопрос ЗАКРЫВАЮ!
Как всегда... час искал, а нашел через минуту после вопроса сюда... SELECT * FROM TABLE_1 WHERE _id IN (4,1,2) ORDER BY FIELD(_id, 4,1,2)Решение задачи: «Запрос по таблице»
textual
Листинг программы
$arr_id=array(1, 9, 2, 12); //расчитыватся... $arr_str=implode(',', $arr_id);//получаю "1,9,2,12" $sql="SELECT * FROM mytable1 WHERE _id IN (".$arr_str.")ORDER BY FIELD(_id, ".$arr_str.")";
Объяснение кода листинга программы
- Создается массив $arr_id, содержащий значения 1, 9, 2, 12.
- Используется функция implode(), чтобы объединить элементы массива $arr_id в строку
1,9,2,12
. - Формируется SQL-запрос:
SELECT * FROM mytable1 WHERE _id IN (1,9,2,12)ORDER BY FIELD(_id, 1,9,2,12)
. - Запрос выбирает все строки из таблицы mytable1, где значение столбца _id соответствует одному из значений в массиве $arr_id.
- Результат запроса сортируется по значению столбца _id в порядке возрастания.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д