• ADADADADAD

    MySQL SQL实现上下行相加减[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:14:10

    作者:文/会员上传

    简介:

    测试用表:
    CREATE TABLE `test` (`id` int(11) NOT NULL auto_increment,`value` int(11) default NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    随意加

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    测试用表:
      CREATE TABLE `test` (`id` int(11) NOT NULL auto_increment,`value` int(11) default NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8


    随意加入测试数据:
      mysql> SELECT* FROM test; +------+-------+ | id| value | +------+-------+ |1 | 2 | |2 | 5 | |3 | 6 | |4 |10 | +------+-------+


    目的:
    row2-row1
    row3-row2
    row4-row3 以此类推,输出。

    先做个自连接,连接条件为id1=id2+1,让id1正好为id2的下一个自增。
      mysql> SELECT a.id id1, b.id id2, a.value value1, b.value value22 -> FROM test a JOIN test b ON a.id = b.id + 1; +------+------+--------+---------+ | id1 | id2 | value1 | value2 | +------+------+--------+---------+ |2 |1 | 5 |2 | |3 |2 | 6 |5 | |4 |3 | 10 |6 | +------+------+--------+---------+ 3 rows in set (0.00 sec)


    因为id1为id2的下一个自增,故value1-value2相减为最后的结果。


    将上述的自连接结果集写作临时表,让value1与value2相减得到最后的结果:
      mysql> SELECT value1 - value2 RESULT -> FROM ( -> SELECT a.value value1, b.value value2 -> FROM test a JOIN test b ON a.id = b.id + 1 -> ) t; +--------+ | RESULT | +--------+ | 3 | | 1 | | 4 | +--------+ 3 rows in set (0.00 sec)

    3、1、4即为 5-2、6-4、10-6。
    同理可得上下行相加。


    作者微信公众号(持续更新)


    MySQL SQL实现上下行相加减.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsql加减