У меня есть следующая таблица
DROP TABLE IF EXISTS `test`.`foo`;
CREATE TABLE `test`.`foo` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Затем я пытаюсь получить записи на основе первичного ключа
SELECT * FROM foo f where f.id IN (2, 3, 1);
Затем я получаю следующий результат:
+----+--------+
| id | name |
+----+--------+
| 1 | first |
| 2 | second |
| 3 | third |
+----+--------+
3 rows in set (0.00 sec)
Как видно, результат упорядочивается по id. То, что я пытаюсь достичь, - получить результаты, упорядоченные в последовательности, которую я предоставляю в запросе. Учитывая этот пример, он должен вернуться
+----+--------+
| id | name |
+----+--------+
| 2 | second |
| 3 | third |
| 1 | first |
+----+--------+
3 rows in set (0.00 sec)