【问题标题】:update sequence number in database mysql php更新数据库mysql php中的序列号
【发布时间】:2016-05-11 05:59:22
【问题描述】:

我在数据库中有产品列表,想从管理员那里管理序列。

如果我在数据库中输入新产品,它将出现 1。(已经有 6 条记录 1、2、3、4、5、6)新产品将是序列 1。新序列将是 1、2、3 ,4,5,6,7 和新的记录将出现在 1。

如果在插入新记录期间,我想排在第三位,而不是其他位置号 3 变为 4,位置号 4 变为 5,依此类推。

我正在使用 MySQL 和 PHP。

当管理员使用以下查询将我们得到新产品的产品添加为第一位置时,我得到了答案:-

//默认位置将设置为0

插入用户(名称,inum)值('产品名称','0');

SET @i = 0;

更新用户 SET inum = @i := @i + 1 ORDER BY inum;

如果我想在位置 3 插入新记录并且记录位置的其余部分将增加 1,我需要做什么。

【问题讨论】:

  • 你能展示你已经做过的事情吗?

标签: php mysql sorting sequence


【解决方案1】:

Priyank 默认情况下,如果您声明一个 id 列或任何名称应用 auto increment 而不是在插入时它们采用自动整数值 像 1 比 2 比 3 所以没有重复值

并且根据您的排序,您可以使用 order by id desc

所以你可以先检索最后的数据,依此类推

更新您的问题后,您可以使用以下查询

UPDATE TABLE table SET ID += 1 WHERE ID >= 9;
INSERT INTO TABLE (ID, ...) VALUES (9, ...);

【讨论】:

  • 我们不能使用自动增量,我们将新文件添加为数据库中的位置当管理员使用以下查询添加产品时,我们得到的新产品始终作为第一位置我得到了答案:-/ / 默认位置将设置为 0 插入用户(名称,inum)值('产品名称','0');设置@i = 0;更新用户 SET inum = @i := @i + 1 ORDER BY inum;现在,如果我需要在第三个位置插入新记录,其余的会自动增加
  • @PriyankSharma 首先你需要更新而不是根据我的查询插入.....它工作得很好
  • @PriyankSharma 如果您想首先插入而不是通过 UPDATE TABLE table SET ID += 1 WHERE ID >= 1 更改 where 条件;接下来你可以插入 1
  • 感谢您的回复。我在数据库中有一个作为 pos 归档,值为 1,2,3,4,5,6,7,8,9,10,现在我想将位置记录编号 9 更新为 2,因此新位置将是 1,2 ,3,4,5,6,7,8,9,10 和记录 9 将成为记录 2,其余记录将相应增加。请帮我解决同样的问题
  • - 第一个查询是从 2 增加到 10 2.chnage 值 10(9 变成 10)到 2 因为 2 现在是空白 -3.11(在第一步之后是 10 它变成 9)到 10跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
相关资源
最近更新 更多