mysql - 如何在 MySQL 中填充从 400000 开始的新列
问题描述
我正在为大学做作业,我需要为新创建的列设置值,但它必须从特定数字开始,在本例中为 40000000,所以它将是这样的:
ID ║ Column to populate ║ FirstName ║ LastName ║
1 40000000 John Smith
2 40000001 John Walker
3 40000002 John Locke
and etc...
我想这与以下查询有关:
更新[table_name] SET [column_name] = [column_name] + 1;
但这显然不会从我想要的数字开始。
也许这是一个愚蠢的问题,但我用谷歌搜索了它,我找不到任何与我需要的东西相关的东西,所以非常感谢任何帮助。谢谢!!!
解决方案
这是使用窗口函数的一种选择:
update mytable t
inner join (
select id, row_number() over(order by id) rn
from mytable t1
) t1 on t1.id = t.id
set t.new_col = 3999 + t1.rn
以防万一:如果id
开始1
并没有间隙地递增,那么它就更简单了:
update mytable set new_col = 3999 + id
不过,我认为这并不安全:id
看起来像一auto_increment
列,而这样的列并不能保证没有间隙。
推荐阅读
- php - 将
标签添加到php - jmeter-4.0 - 如何使用 JMeter ASP.net 使用正则表达式解析部分渲染来提取视图状态和事件验证
- algorithm - 是否有任何规则可以选择第一个相邻顶点进行图遍历?
- android - 如何通过 android 中的 YouTube API 获取用户的 Youtube 播放列表?
- javascript - 如何使用 jquery 恢复和删除表 td 数据
- magento2 - Magento 2 + UI 组件在帖子中没有获得价值
- javascript - 按钮内的可点击 div 在 Firefox 上不起作用
- angular - 如何在 Angular 4/5 中访问多个复选框值
- java - 设置字符代码表以在 ESC/POS 打印机中打印非拉丁字符
- java - 从 jdbc 执行 PLSQL 后读取 DBMS_Ouptut