Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何像Excel一样在MySQL中“填充序列”(线性步长值)?_Mysql_Excel_Increment_Series_Minimum - Fatal编程技术网

如何像Excel一样在MySQL中“填充序列”(线性步长值)?

如何像Excel一样在MySQL中“填充序列”(线性步长值)?,mysql,excel,increment,series,minimum,Mysql,Excel,Increment,Series,Minimum,在Excel中,用线性步长值填充序列很简单。在MySQL中如何做到这一点 1从博客文章中选择*其中postid=5按rowid ASC排序 我从一个巨大的表中得到这个查询结果: rowid postid Unix_TimeStamp 100 5 1000000000 135 5 1656885375 142 5 1885649882 208 5 1928211766 2下一步,我需

在Excel中,用线性步长值填充序列很简单。在MySQL中如何做到这一点

1从博客文章中选择*其中postid=5按rowid ASC排序

我从一个巨大的表中得到这个查询结果:

rowid   postid    Unix_TimeStamp
100     5          1000000000
135     5          1656885375
142     5          1885649882
208     5          1928211766
2下一步,我需要更改Unix_TimeStamp的值。我想让第一行rowid=100单独存在,那么每一行的Unix_时间戳都比前一行的高100。结果将是:

rowid   postid    Unix_TimeStamp
100     5          1000000000
135     5          1000000100
142     5          1000000200
208     5          1000000300

非常感谢您的慷慨回复。

在mysql 5.x中,您可以这样做

在mysql 8中,您具有窗口功能

模式MySQL v5.7

问题1

设置bp.Unix_TimeStamp=t1.Unix_TimeStamp;
在mysql 5.x中,您可以这样做

在mysql 8中,您具有窗口功能

模式MySQL v5.7

问题1

设置bp.Unix_TimeStamp=t1.Unix_TimeStamp;
谢谢它创建了带有临时值ronn fine的表。但是,将Unix_时间戳与原始查询结果逐行匹配的命令是什么。换句话说,我需要更改原始查询结果的Unix\u时间戳,因为我添加了update命令。如果你想对所有的帖子都这么做,那么这个洞的事情就变得更复杂了。非常感谢!作为一个非编码员,我对你感激不尽!!!是的,成功了!谢谢它创建了带有临时值ronn fine的表。但是,将Unix_时间戳与原始查询结果逐行匹配的命令是什么。换句话说,我需要更改原始查询结果的Unix\u时间戳,因为我添加了update命令。如果你想对所有的帖子都这么做,那么这个洞的事情就变得更复杂了。非常感谢!作为一个非编码员,我对你感激不尽!!!是的,成功了!请注意,在2中,我需要更改Unix_TimeStamp的值,谢谢!因此,您希望基于上一个更新unix\u timestamp。请检查此处给出的答案:这是否回答了您的问题?请注意,在2中,我需要更改Unix_TimeStamp的值,谢谢!因此,您希望基于上一个更新unix\u timestamp。请检查此处给出的答案:这是否回答了您的问题?
CREATE TABLE blog_posts  (
  `rowid` INTEGER,
  `postid` INTEGER,
  `Unix_TimeStamp` INTEGER
);

INSERT INTO blog_posts 
  (`rowid`, `postid`, `Unix_TimeStamp`)
VALUES
  ('100', '5', '1000000000'),
  ('135', '5', '1656885375'),
  ('142', '5', '1885649882'),
  ('208', '5', '1928211766');
SELECT 
`rowid`, `postid`
,(SELECT MIN(`Unix_TimeStamp`) FROM blog_posts where postid = 5 ) + @rn *100 `Unix_TimeStamp`
 ,@rn := @rn + 1 ronn
FROM blog_posts, (SELECT @rn := 0) a
where postid = 5 
ORDER BY rowid ASC;

| rowid | postid | Unix_TimeStamp | ronn |
| ----- | ------ | -------------- | ---- |
| 100   | 5      | 1000000000     | 1    |
| 135   | 5      | 1000000100     | 2    |
| 142   | 5      | 1000000200     | 3    |
| 208   | 5      | 1000000300     | 4    |



  UPDATE blog_posts bp INNER JOIN (SELECT 
`rowid`, `postid`
,(SELECT MIN(`Unix_TimeStamp`) FROM blog_posts where postid = 5 ) + @rn *100 `Unix_TimeStamp`
 ,@rn := @rn + 1 ronn
FROM blog_posts, (SELECT @rn := 0) a
where postid = 5 
ORDER BY rowid ASC) t1 ON bp.rowid = t1.rowid 
[View on DB Fiddle](https://www.db-fiddle.com/f/wUqVKNZy96RjR7hTk3md7o/4)