博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL-交换表中2行2字段的值
阅读量:4650 次
发布时间:2019-06-09

本文共 970 字,大约阅读时间需要 3 分钟。

需求场景:

当表中的一个字段存储当前记录的顺序或者排名时候,它需要进行上移或者下移,或者直接和某个记录交换值的时候,通常可以立刻想到以下的SQL操作语句。      

CREATE TABLE coordinatePt_Table(nID SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',nIndex SMALLINT UNSIGNED NOT NULL COMMENT '顺序',Longitude DOUBLE COMMENT '经度',Latitude DOUBLE COMMENT '纬度',PRIMARY KEY(nID));DELETE FROM coordinatePt_Table WHERE nID < 100;INSERT INTO coordinatePt_Table VALUES(NULL, 0, 30.10, 110.0),(NULL, 1, 34.10, 115.0);SELECT * FROM coordinatePt_Table LIMIT 100;SET @nTemp1 = 0;SET @nTemp2 = 0;SELECT nIndex INTO @nTemp1 FROM coordinatePt_Table WHERE nID = 1;SELECT nIndex INTO @nTemp2 FROM coordinatePt_Table WHERE nID = 2;UPDATE coordinatePt_Table SET nIndex = @nTemp2 WHERE nID = 1;UPDATE coordinatePt_Table SET nIndex = @nTemp1 WHERE nID = 2;

肯定有更简单的方式实现需求。

UPDATEcoordinatePt_Table AS T1 JOINcoordinatePt_Table AS T2 ON (T1.nID = 1 AND T2.nID = 2)SET T1.nIndex = T2.nIndex, T2.nIndex = T1.nIndex;

 

MYSQL查询语句:

 

转载于:https://www.cnblogs.com/Operator/p/5366332.html

你可能感兴趣的文章
织梦教程
查看>>
杭电多校 Harvest of Apples 莫队
查看>>
java 第11次作业:你能看懂就说明你理解了——this关键字
查看>>
C/C++心得-结构体
查看>>
函数名作为参数传递
查看>>
apt-get for ubuntu 工具简介
查看>>
数值计算算法-多项式插值算法的实现与分析
查看>>
day8-异常处理与网络编程
查看>>
Python基础-time and datetime
查看>>
Linux epoll 笔记(高并发事件处理机制)
查看>>
shell脚本练习01
查看>>
WPF图标拾取器
查看>>
通过取父级for循环的i来理解闭包,iife,匿名函数
查看>>
HDU 3374 String Problem
查看>>
数据集
查看>>
[Leetcode] unique paths ii 独特路径
查看>>
HDU 1217 Arbitrage (Floyd + SPFA判环)
查看>>
IntelliJ idea学习资源
查看>>
Django Rest Framework -解析器
查看>>
ExtJs 分组表格控件----监听
查看>>