首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在MySQL中交换列值

在MySQL中交换列值的方法是使用UPDATE语句和CASE表达式。以下是一个示例,演示如何在MySQL中交换两个列(col1和col2)的值:

代码语言:sql
复制
UPDATE your_table
SET col1 = CASE
    WHEN @swap_id := col1 THEN col2
    ELSE col1
END,
col2 = CASE
    WHEN @swap_id := col1 THEN col2
    ELSE col1
END;

在这个示例中,我们使用CASE表达式来交换两个列的值。我们首先将col1的值赋给变量@swap_id,然后将col2的值赋给col1,最后将@swap_id的值赋给col2。这样就实现了两个列值的交换。

注意:在使用这个查询之前,请确保您已经备份了您的数据,以防止意外情况发生。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mysql与Oracle修改的默认

于是想到通过default来修改的默认: alter table A modify column biz default 'old' comment '业务标识 old-老业务, new-新业务'...找后台运维查生产数据库,发现历史数据的biz字段还是null 原因: 自己本地mysql数据库试了下,好像的确是default没法修改历史数据为null 的。这就尴尬了。...看起来mysql和oracledefault的语义上处理不一样,对于oracle,会将历史为null的刷成default指定的。...而对于mysql,只会对新数据产生影响,历史数据仍然会保持为null。...总结 1. mysql和oracledefault的语义上存在区别,如果想修改历史数据的,建议给一个新的update语句(不管是oracle还是mysql,减少ddl执行的时间) 2.

13.1K30
  • 删除的 NULL

    图 2 输出的结果 先来分析图 1 是怎么变成图 2,图1 的 tag1、tag2、tag3 三个字段都存在 NULL ,且NULL无处不在,而图2 里面的NULL只出现在这几个字段的末尾。...这个就类似于 Excel 里面的操作,把 NULL 所在的单元格删了,下方的单元格往上移,如果下方单元格的仍是 NULL,则继续往下找,直到找到了非 NULL 来补全这个单元格的内容。...有一个思路:把每一去掉 NULL 后单独拎出来作为一张独立的表,这个表只有两个字段,一个是序号,另一个是去 NULL 后的。...比如 tag1 变成 t1 表,tag2 变成 t2 表,tag3 变成 t3 表。...,按原表的列出现的顺序设置了序号,目的是维持同一的相对顺序不变。

    9.8K30

    MySQL timestamp类型自动更新

    MySQL中使用timestamp定义字段,默认情况下会给字段添加自动更新的属性,本文将分析这个自动更新的设置。...刨根问底 create table语句中,对第一个出现的timestamp类型字段的定义会有如下几种情况: 使用DEFAULT CURRENT_TIMESTAMP,表示为当前时间戳但不会自动更新;...使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,表示为当前时间戳并且自动更新,也就是每次更新记录都会自动更新该为当前时间戳; 没有使用...对于使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP进行定义的,需要注意的是如果该字段没有发生变化,将不会进行更新,而且对于多个使用DEFAULT...CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP进行定义的mysql只会更新第一个使用它定义的

    3.7K70

    Mysql类型

    Mysql类型: 数字类型 字符串类型 布尔型 日期时间类型 数字类型: 1个字节=8比特,但数字里有一个比特用于符号占位 TINYINT 占用1个字节,表示范围:-128~127 SMALLINT...政治面貌:只能取党员、团员、群众 高考成绩:FLOADT(4,1) 取值有规则 电话、手机号码:有格式要求 用户名:必须唯一 登录密码:密码不能为空字符串且长度不能少于N位 员工所在部门:可取值必须在部门表存在过...主键约束: 列名 类型 PRIMARY KEY 声明为“主键”的列上不能出现NULL,且不能重复,如学生编号、商品编号。...表中所有的记录行会自动按照主键列上的进行排序。 一个表至多只能有一个主键。 唯一约束: 列名 类型 UNIQUE 声明为“唯一”的列上不能出现重复,但可以出现多个NULL。...非空约束: 列名 类型 NOT NULL 声明为“非空”约束的列上不能出现NULL,但可以重复 检查约束对于Mysql不支持 默认约束 列名 类型 Default 声明为“默认”约束的列上没有的将会默认采用默认设置的

    6.4K20

    如何使用python连接MySQL表的

    MySQL 是一个开源关系数据库管理系统,广泛用于存储、管理和组织数据。使用 MySQL 表时,通常需要将多个组合成一个字符串以进行报告和分析。...Python是一种高级编程语言,提供了多个库,可以连接到MySQL数据库和执行SQL查询。 本文中,我们将深入探讨使用 Python 和 PyMySQL 库连接 MySQL 表的的过程。...此技术对于需要使用 MySQL 数据库的数据分析师和开发人员等个人特别有用,他们需要将多个合并到一个字符串。...这将打印 employee 表每一行的first_name和last_name的串联。...通过使用 PyMySQL 库,我们可以轻松连接到 MySQL 数据库、执行 SQL 查询并连接。此技术各种方案中都很有用,例如生成报告或分析数据。

    23130

    关于mysql加索引这个中有null的情况

    需求由于要批量查数据,且表数据量挺大(2300万条记录) 且查询条件的这两个字段没有加索引,为了增加查询速度,现在需要去为这两个字段添加索引。...由于联合索引的是先以 前面的排序根据后面的排序所以说将区分度高的放在前面会减少扫描行数增加查询效率 但是最重要的问题来了,我就要提交SQL的时候 leader 问了一句我,你这边的话这个数据字段 默认为...B+树 不能存储为null的字段吗。想想也是啊 为null 这个key 怎么建立啊,怎么进行区分呢?...于是带着疑问去查了查, innodb引擎是可以在为null的里创建索引的,并且在当条件为is null 的时候也是会走索引的。...所以说这个null一定是加到B+ 树里面了 但是这个就会哟疑问了 索引的key为nullB+树是怎么存储着呢 ???

    4.3K20

    Django ORM 查询表字段

    场景: 有一个表的某一,你需要获取到这一的所有,你怎么操作?...title': '第三个日程测试'}, {'title': '第四个日程测试'}, {'title': '第五个测试日程'}]> 方式一获取到的是一个QuerySet,内容是键值对构成的,键为表的列名,为对应的每个...QuerySet [('测试feed',), ('今天',), ('第三个日程测试',), ('第四个日程测试',), ('第五个测试日程',)]> 方式二获取到的也是一个QuerySet,但是内容是元祖形式的查询...但是我们想要的是这一呀,这怎么是一个QuerySet,而且还包含了列名,或者是被包含在了元祖?...查看高阶用法,告诉你怎么获取一个的 list,如:['测试feed', '今天', '第三个日程测试', '第四个日程测试', '第五个测试日程']

    3.7K50

    mysql使用default给设置默认的问题

    add column会修改旧的默认 add column和modify columndefault的语义上处理不一样。...结论: 1. add column和modify columndefault的语义上存在区别,如果想修改大表历史数据的,建议给一个新的update语句(不管是add column还是modify column...即使指定了default的,如果insert的时候强制指定字段的为null,入库还是会为null 3....将表test,添加num字段,设置默认为0: alter table A add column num default '0' comment '数量' 此时设置为0成功。 2....结论:mysql 的默认只有insert语句中没有这个字段时才会生效,如果insert中有插入该字段而该字段取值又为null,null将被插入到表,默认值此时失效。

    82510

    为什么MySQL不建议使用NULL作为默认

    NULL是一种对的特殊约束,我们创建一个新时,如果没有明确的使用关键字not null声明该数据,Mysql会默认的为我们添加上NULL约束....有些开发人员创建数据表时,由于懒惰直接使用Mysql的默认推荐设置.(即允许字段使用NULL).而这一陋习很容易使用NULL的场景得出不确定的查询结果以及引起数据库性能的下降....NULL并不意味着什么都没有,我们要注意 NULL 跟 ''(空)是两个完全不一样的.MySQL可以操作NULL操作符主要有三个....MySQL中支持含有NULL的列上使用索引,但是Oracle不支持.这就是我们平时所说的如果列上含有NULL那么将会使索引失效. 严格来说,这句话对与MySQL来说是不准确的....根据以上缺点,我们并不推荐设置NULL作为的默认,你可以使用NOT NULL消除默认设置,使用0或者''空字符串来代替NULL.

    4.7K10

    为什么MySQL不建议使用NULL作为默认

    今天来分享一道美团高频面试题,5 分钟搞懂“为什么 MySQL 不建议使用 NULL 作为默认?”。...着急的人拉到最下边看结论 前言 NULL是一种对的特殊约束,我们创建一个新时,如果没有明确的使用关键字not null声明该数据,MySQL会默认的为我们添加上NULL约束。...有些开发人员创建数据表时,由于懒惰直接使用Mysql的默认推荐设置.(即允许字段使用NULL).而这一陋习很容易使用NULL的场景得出不确定的查询结果以及引起数据库性能的下降。...介绍 NULL并不意味着什么都没有,我们要注意 NULL 跟 ''(空)是两个完全不一样的MySQL可以操作NULL操作符主要有三个。...(就像额外的标志位一样) 根据以上缺点,我们并不推荐设置NULL作为的默认,你可以使用NOT NULL消除默认设置,使用0或者''空字符串来代替NULL。

    39520
    领券