Как организовать изменение порядка строк в таблице?
Похоже, что какого-то красивого решения нет. Если вас устроит блокировка при вставке, то можно сделать как-то так:LOCK TABLES `test_sort` AS t1 WRITE, `test_sort` WRITE;

INSERT INTO `test_sort` (`title`, `order`) 
SELECT 'YOUR_TEXT_HERE', IFNULL(MAX(`order`), 0) + 1 FROM `test_sort` AS t1;

UNLOCK TABLES;схемаCREATE TABLE `test_sort` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `order` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
Т.е. при вставке нового значения выбирается максимальное значение order и добавляется +1.
Если уникальность этого порядка не очень то и важна, ну подумаешь, то можно и без блокировки.
А поменять приоритет двух записей зная только их id можно так:UPDATE test_sort AS t1
JOIN test_sort AS t2 ON ( t1.id = 1 AND t2.id = 4 )
SET
  t1.order = t2.order,
  t2.order = t1.order;
Если изначально установить priority = id и только менять их местами, то очевидно, что max(priority) = max(id). А значит при добавлении следующей строки можно опять установить priority = id с помощью триггера AFTER INSERT.