首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新行序列

更新行序列
EN

Stack Overflow用户
提问于 2011-07-18 15:56:16
回答 1查看 593关注 0票数 3

我有一个表sites,基本上是一个旅行推销员问题。我的老板想从列表中选择一堆网站,然后手动将它们排序为访问顺序。我一直在寻找similar questions,但它们不是针对MySQL的,而那些that were也没有为我的情况提供合理的解决方案。我在大学没有学过计算机科学,所以希望这对你们中的一些人来说是最基本的东西。

我想做一些类似以下伪代码的事情:

代码语言:javascript
复制
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);

后者的效果与以下内容相同:

代码语言:javascript
复制
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表如下所示:

代码语言:javascript
复制
+---------------+----------------------+------+-----+---------+----------------+
| 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       |                |
+---------------+----------------------+------+-----+---------+----------------+
EN

回答 1

Stack Overflow用户

发布于 2011-07-18 16:10:18

我想这就是你要找的代码。

http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-values-and-a-single-sql-query/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6730050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档