【问题标题】:Update one field so that the order value will be continuous更新一个字段,使订单值连续
【发布时间】:2012-06-29 18:25:34
【问题描述】:

在我的表中,一个字段“ord”包含特定组的值的顺序。

tbl_test 字段为 Group,time,ord,name

示例条目

id       Group time                      ord          name
----------------------------------------------------------------
1        1     1340865990                1            john
2        1     1340865880                2            jos
3        1     1340867830                3            mery
4        1     1340867830                4            bill
5        1     1340867830                5            stiev
6        1     1340867830                6            tom
7        2     1340867830                1            test
8        3     1340867830                2            john

如果我从第 1 组中删除一组值,例如我删除了“mery”和“tom”,那么“ord”字段必须具有更新的剩余项目的订单值

id       Group time                      ord          name
----------------------------------------------------------------
1        1     1340865990                1            john
2        1     1340865880                2            jos
4        1     1340867830                3            bill
5        1     1340867830                4            stiev

删除的项目可以是任何顺序。要删除该项目,用户将提供一个 id 列表和组。

如何在 mysql 中实现?

注意:

要在删除单个条目时更新排序,我使用以下查询:

SET @a = 3;
UPDATE tbl_test 
SET ord = 5,time = 1337690755 
WHERE Group = 1 AND id = 6;

【问题讨论】:

  • 你还更新了 bill 和 stiev 的 id,不仅仅是 ord。
  • 对不起,我没有更新 id。

标签: php mysql


【解决方案1】:

如果订单与time(或id)相关,这可能有效。

SET @order:=0;
UPDATE tbl_test
SET ord=@order:=@order+1
WHERE group=1
ORDER BY time, id

以上答案借自:updating columns with a sequence number mysql

替代方法来自:Mysql Insert Order Number By VARCHAR Field

SET @order:=0;
UPDATE 
SET ord=@order:=@order + 1
FROM tbl_test
ORDER BY time, id

如果没有ord 列未在使用中,也可以选择重置AUTO_INCREMENT id

【讨论】:

  • 无订单与时间或id无关。
  • 谢谢 ZZ-bb 我得到了答案 SET @order:=0; UPDATE tbl_test SET ord=@order:=@order+1 WHERE group=1 ORDER BY ord;
猜你喜欢
  • 2010-12-21
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
相关资源
最近更新 更多