Mysql - 根据顺序从另一列更新表列

2024-03-20

我有一个带有列的表格id, name, position, old_position.

专栏old_position包含用于在进行选择时定义顺序的唯一编号。但这些数字不是连续的(即使已订购)。例如。 2、12、11、14、20、35、45、28、

我想要实现的是填充该列position从 1 开始的连续数字,但根据 old_position 具有相同的顺序,所以当我按position ASC我仍然可以获得相同的行顺序。有没有办法做到这一点 ?

Thanks


假如说id每行都是唯一的,您可以使用变量来做到这一点:

update <table> t join
       (select t.id, @rn := @rn + 1 as seqnum
        from <table> t cross join (select @rn := 0) vars
        order by old_position
       ) tt
       on tt.id = t.id
    set t.position = tt.seqnum;

如果您愿意,您可以在不使用子查询的情况下编写此代码。挑战在于定义变量。这是一种方法:

update <table> t
    set t.position = (@rn := coalesce(@rn, 0) + 1)
    order by old_position;

你不能在子查询中初始化变量,因为 MySQL 不允许这两者join and order by in an update陈述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql - 根据顺序从另一列更新表列 的相关文章

  • SQL DML:日期值不正确 (MySQL)

    我在数据库中创建了一个表 CREATE TABLE official receipt student no INT UNSIGNED academic year CHAR 8 trimester ENUM 1 2 3 or no MEDIU
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 在 while 循环内查询可以吗?

    我在一个数据库中有两个表 我正在查询第一个表限制 10 然后循环结果 在 while 循环内 我使用第一个查询中的数据作为参数再次执行另一个查询 以下是该脚本的示例
  • MySQL-分割字符串

    我的问题与这篇文章类似 MySQL 中的 反向 GROUP CONCAT https stackoverflow com questions 17308669 reverse group concat in mysql 然而 而不是反转gr
  • 使用子查询与 LEFT JOIN 一起选择 MAX 值

    我有一个获取搜索结果的查询 效果很好 查询成功示例 SELECT individuals individual id individuals unique id TIMESTAMPDIFF YEAR individuals day of b
  • MySQL INSERT 无需指定每个非默认字段(#1067 - “表”的默认值无效)

    我已经见过好几次了 我有一台服务器允许我插入一些值 而无需指定其他值 如下所示 INSERT INTO table SET value a a value b b value c 是一个没有设置默认值的字段 但在这里工作正常 当脚本移动到新
  • 使用 Laravel Fluent 查询生成器从多个表中进行选择

    我正在重写一些 PHP MySQL 来与 Laravel 一起使用 我想做的一件事是使数据库查询更加简洁使用 Fluent 查询生成器 http laravel com docs database fluent但我有点迷失 SELECT p
  • 为什么 Clojure MySQL 查询结果中出现“M”

    我有一个返回一行的 Clojure 查询 下面是返回行 映射 的部分打印输出 employer percent 0 00M premium 621 44M 这两列在mysql表中分别是decimal 5 2 和decimal 7 2 为什么
  • Mysql:计算访问频率

    我有这张桌子 CREATE OR REPLACE TABLE hits ip bigint page VARCHAR 256 agent VARCHAR 1000 date datetime 我想计算每个页面的 googlebot 访问频率
  • 自动将范围内的值插入表中

    是否可以使用 MySQL 语句自动将值插入表中 即从 30 到 200 这是一个应该执行此操作的存储过程 CREATE PROCEDURE insert range BEGIN DECLARE i INT DEFAULT 30 WHILE
  • Mysql案例不工作

    SELECT SQL CALC FOUND ROWS a zn name AS zone name c name AS carrier name CASE type WHEN type 1 THEN General day ELSE Spe
  • MySQL 全文搜索之谜

    我们的网站上有一个使用 MySQL 全文搜索的简单搜索 但由于某种原因 它似乎没有返回正确的结果 我不知道这是否是 Amazon RDS 我们的数据库服务器所在的位置 或我们请求的查询的某种问题 这是数据库表的结构 CREATE TABLE
  • 将数据从 MS SQL 导入 MySQL

    我想从 MS SQL Server 导入数据 通过某种正则表达式运行它以过滤掉内容 然后将其导入 MySQL 然后 对于每个查询 我希望显示来自第三个数据库的相关图像 明智地导入和链接 最简单的方法是什么 谢谢 澄清 它是一个 PHP 应用
  • ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

    Nodejs中使用mysql的问题 const mysql require mysql var connection mysql createConnection host localhost user root password 1234
  • PHP 数据库显示在具有不同锚标记的相同字段中

    我四处寻找 看看这是否可行 但却空手而归 首先 这是我的代码 div style display none div ul li li li li li li ul
  • 如何删除非空约束?

    假设创建了一个表 如下所示 create table testTable colA int not null 您将如何删除非空约束 我正在寻找类似的东西 ALTER TABLE testTable ALTER COLUMN colA DRO
  • ORDER BY id 或 date_created 显示最新结果?

    我有一个表 实际上有几个 我想首先从中获取最新条目的结果 这是我的ORDER BY条款选项 date created INT 从不改变值 id 当然是INT AUTO INCRMENT 两列应同等地代表记录插入的顺序 我自然会使用date
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • php echo 不工作

    我的代码似乎不起作用 单选按钮出现 但旁边什么也没有 似乎 mysql fetch array 由于某种原因无法工作 因为我已经玩过代码并反复测试它以查找代码似乎遇到的位置出现问题并停止工作 有人可以告诉我出了什么问题吗 欢呼声我是新手 最
  • 是否可以在MYSQL中动态选择列名,其中列名是N个已知值中的1?

    我担心答案会是直接的 不 但我想知道是否可以在 MySQL 中执行如下操作 SELECT title label name FROM table 即选择单个列 可以称为title label or name from table 原因是 查

随机推荐

  • 如何在 matplotlib 等高线图中设置虚线长度

    我正在 matplotlib 中制作一些等高线图 但破折号的长度太长 虚线也不好看 我想手动设置破折号的长度 当我使用 plt plot 制作简单的绘图时 我可以设置精确的破折号长度 但是我无法弄清楚如何使用等高线图做同样的事情 我认为以下
  • 如何处理 Google Play 中的待处理购买

    我们的大多数购买在 3 天 30 分钟后不断被取消 我认为这是待购买状态的结果 然而 关于如何准确处理待处理购买的文档却很少 而且 由于某种原因 即使我自己是测试人员 我也无法测试它 因为购买方式上没有 慢卡 选项 此外 我们没有后端服务器
  • C# 将行添加到具有自动增量列的数据表

    我有一个数据表 其中包含 A B C 列 我已将 A 列的 is Identity 属性设置为 true 但现在无法向表中添加任何行 我正在尝试的代码是这样的 dsA dtA row dsA dtA NewdtARow row B 1 ro
  • JavaScript 超时 - 规范 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这不仅仅是一个问题 它是一个确保Ja
  • 为什么 git revert 会抱怨缺少 -m 选项?

    所以我正在和其他人一起开发一个项目 并且有多个 github 分支正在开发中 有人刚刚修复了一个问题 我与他的分支合并 但后来我意识到我可以找到更好的解决方案 我想恢复我刚刚所做的提交 我尝试这样做git revert HEAD但它给了我这
  • 如何使用 refs/remotes 中的所有分支和标签克隆 git 存储库?

    我有一个从 svn 存储库创建的本地 git 存储库 git svn clone s svn 然后我创建了一个备份遥控器并将所有内容推送到其中 git remote add backup git myhost mybackup git gi
  • 子进程输出到 stdout 和 PIPE

    我正在使用subprocess像这样的模块 ping subprocess Popen fping exe 192 168 2 3 196 65 58 69 stdout PIPE output ping stdout readlines
  • AspectJ 的 NoSuchMethodError

    注意 这是概念实现的证明 而不是最终的事情 我有第三个 派对附加组件 我想限制他们对声音的使用 例如限制持续时间等 安全管理器不可能实现 为了实现这一点 我考虑用包装器替换 AudioSystem getLine 的返回值 这是测试方面 A
  • 如何使用 python 从 JSON 中提取特定字段和值?

    我正在迭代 JSON 我想从此对象中提取以下字段 Id 开放日期 User 票证状态 结束日期 我的数据结构如下 filtered data id 1021972 Aging Deferred Transferred Aging Open
  • MongoDB 全文搜索

    创建索引 db MyCollection createIndex text name FullTextIndex 搜索匹配项 db MyCollection find text search myWord count 结果为 1 对于具有值
  • 接口从类加载器中不可见

    我是新玩的 框架并使用 wsdl2java 工具 我正在开发一部戏 需要与 SOAP Web 服务交互的应用程序 我有 WSDL 并使用 jaxws 从它创建对象 它创建了一堆 java 类和 1 个接口 当我尝试进行 Web 服务调用时
  • 如何让R8 + proguard-android-optimize.txt + Google Drive API 无缝工作?

    这是我们的R8版本 当前版本是 1 4 94 来自 go r8bot luci r8 ci archive 0 5g74 的内部版本 390954928f0db9c3b888a367f7f128ce3bbfb160 当我从 buildTyp
  • 具有多个服务器和 php 工作人员的 Gearman

    我在多个服务器上运行的 gearman 工作人员遇到了问题 我似乎无法解决 当工作服务器脱机而不是工作进程被取消时 就会出现此问题 并导致所有其他工作进程出错和失败 仅 1 个客户和 2 个工作人员的示例 Client client new
  • 从docker容器访问主机的ssh隧道

    使用 ubuntu tusty 有一个在远程计算机上运行的服务 我可以通过 ssh 隧道通过端口转发来访问该服务localhost 9999 我有一个正在运行的 docker 容器 我需要从容器内通过主机的隧道访问该远程服务 我尝试从容器到
  • 没有 Web 应用程序服务器的 Java Web 服务

    我们有一个消息处理服务器 它 启动几个线程 处理消息 与数据库交互等 现在客户想要一个网络服务服务器在服务器上 他们将能够通过 Web 服务客户端查询消息处理服务器 例如给我今天的所有消息 或者删除带有 id 的消息 问题是 服务器只是一个
  • Meteorjs 加载消息

    我构建了应用程序 从 mongodb 加载初始数据集需要时间 我想显示加载 gif 直到数据加载完成 你能帮我做这件事吗 Use Session在 的里面onReady 的回调Meteor subscribe 函数 当订阅完成时调用 Met
  • 如何为 jQuery 选择器创建自定义函数

    如何创建一个自定义函数来附加到 jQuery 选择器 看起来像这样的东西 my class my function 您想要将该功能添加到jQuery fn 这是对 jQuery 对象原型的引用 欲了解更多详情 请查看 http docs j
  • sp_dbcmptlevel 被弃用后如何检查 SQL Server 数据库兼容性?

    根据 BOL SQL Server 联机丛书 sp dbcmptlevel http technet microsoft com en us library ms178653 aspx Microsoft SQL Server 的未来版本将
  • 按下退出按钮时最小化移动应用程序

    我正在使用 J2ME 和 LWUIT 开发移动应用程序 每当默认退出时Button 红色 在装有 symbian 操作系统的手机上按下 我希望我的应用程序最小化并且不退出 我该如何实现这一目标 根据诺基亚文档http library dev
  • Mysql - 根据顺序从另一列更新表列

    我有一个带有列的表格id name position old position 专栏old position包含用于在进行选择时定义顺序的唯一编号 但这些数字不是连续的 即使已订购 例如 2 12 11 14 20 35 45 28 我想要