Обновление последовательности строк - PullRequest
3 голосов
/ 18 июля 2011

У меня есть таблица sites и, в основном, проблема с коммивояжером. Мой босс хочет выбрать несколько сайтов из списка, а затем отсортировать их вручную в порядке посещения. Я искал похожих вопросов , но они не были нацелены на MySQL, а те , которые были , не давали разумного решения. для моей ситуации. Я не занимался информатикой в ​​университете, так что, надеюсь, это кое-что из того, что есть у некоторых из вас.

Я хотел бы сделать что-то вроде следующего псевдокода:

UPDATE sites SET run_order=0 WHERE selected='false';
UPDATE sites SET run_order=AUTO_SEQUENCE(DESC FROM 6) WHERE site_id=SEQUENCE(23,17,9,44,2,14);

Последний из них будет иметь такой же эффект, как:

UPDATE sites SET run_order=6 WHERE site_id=23;
UPDATE sites SET run_order=5 WHERE site_id=17;
UPDATE sites SET run_order=4 WHERE site_id=9;
UPDATE sites SET run_order=3 WHERE site_id=44;
UPDATE sites SET run_order=2 WHERE site_id=2;
UPDATE sites SET run_order=1 WHERE site_id=14;

Поскольку я запускаю это через PHP, мне не нужно выдавать много отдельных запросов, хотя количество сайтов, которые мой босс может посетить за день, конечно, ограничено механизмом внутреннего сгорания.
Моя таблица SQL выглядит так:

+---------------+----------------------+------+-----+---------+----------------+
| Field         | Type                 | Null | Key | Default | Extra          |
+---------------+----------------------+------+-----+---------+----------------+
| site_id       | int(10) unsigned     | NO   | PRI | NULL    | auto_increment |
| ...           |                      |      |     |         |                |
| selected      | enum('false','true') | NO   |     | false   |                |
| run_order     | int(10) unsigned     | NO   |     | 0       |                |
+---------------+----------------------+------+-----+---------+----------------+

1 Ответ

0 голосов
/ 18 июля 2011
...