Запрос по таблице - 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.")";

Объяснение кода листинга программы

  1. Создается массив $arr_id, содержащий значения 1, 9, 2, 12.
  2. Используется функция implode(), чтобы объединить элементы массива $arr_id в строку 1,9,2,12.
  3. Формируется SQL-запрос: SELECT * FROM mytable1 WHERE _id IN (1,9,2,12)ORDER BY FIELD(_id, 1,9,2,12).
  4. Запрос выбирает все строки из таблицы mytable1, где значение столбца _id соответствует одному из значений в массиве $arr_id.
  5. Результат запроса сортируется по значению столбца _id в порядке возрастания.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5