MySQL之同表一个字段如何赋值给另一个字段

 更新时间:2023年07月01日 10:29:36   作者:jeikerxiao  
这篇文章主要介绍了MySQL之同表一个字段如何赋值给另一个字段问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql同表一个字段赋值给另一个字段

将同一个表中的一个字段的值复制给另一个字段

UPDATE t_user  
SET signed_time = create_time 

将同一个表中两个类型一样的字段的值互换

UPDATE t_user u1, t_user u2 
SET u1.signed_time = u2.create_time,  
    u2.create_time = u1.signed_time  

mysql表table_a B字段值赋值给A字段 update 语句

-- 同一个表
UPDATE table_a SET A=(SELECT B FROM (SELECT * FROM table_a) b WHERE b.id = table_a.id)
-- 两个(一样的)表
UPDATE table_a SET A = (SELECT B FROM table_b WHERE table_b.id= table_a.id)
-- 例子
-- UPDATE FY_MEDICINE_DIRECTION SET MEDICINE_NAME=(SELECT COMMON_NAME FROM (SELECT * FROM FY_MEDICINE_DIRECTION) b WHERE b.id = FY_MEDICINE_DIRECTION.id) WHERE  SOURCES='参考《国家医保药品手册》(2017版)' AND MED_ISTATUS=1
-- UPDATE message  SET image=(SELECT istatus FROM (SELECT * FROM message) b WHERE b.id = message.id)

mysql同一张表中的一个字段的值替换另一个字段

要求:

原数据

替换成

替换后的数据

测试数据:

CREATE TABLE `test`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES (1, 'a');
INSERT INTO `test` VALUES (2, 'b');
INSERT INTO `test` VALUES (3, 'c');
INSERT INTO `test` VALUES (4, 'd');
INSERT INTO `test` VALUES (5, 'e');

方法一

以前以为set就是:key = value,没想到可以直接将两个字段放上去进行赋值。

UPDATE test SET value = id;
-- 若有其他条件往后面添加就行 update table set field1 = field2 where ...

方法二

这种方法针对两个表的数据同步

update A inner join(select id,name from B) c on A.id = c.id set A.name = c.name;

用在这里就是创建一个临时表(将test表复制一份),然后使用这种方法。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL5.6.22 绿色版 安装详细教程(图解)

    MySQL5.6.22 绿色版 安装详细教程(图解)

    本文通过图文并茂的形式给大家介绍了MySQL5.6.22 绿色版 安装详细教程,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法

    mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法

    今天在配置服务器的时候,发现mysql的一个错误提示在 本地计算机 无法启动 MySQL 服务。错误 1067: 进程意外终止,其实原因很多这个不是导致进程意外终止的最终原因,但可以解决
    2016-04-04
  • mysql日志滚动

    mysql日志滚动

    日志滚动解决日志文件过大问题,比如我开启了general_log,这个日志呢是记录mysql服务器上面所运行的所有sql语句;比如我开启了mysql的慢查询
    2014-01-01
  • MySql数据类型教程示例详解

    MySql数据类型教程示例详解

    这篇文章主要为大家介绍了MySql数据类型的教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-10-10
  • 介绍一个针对C++程序的MySQL访问库soci

    介绍一个针对C++程序的MySQL访问库soci

    这篇文章主要介绍了介绍一个针对C++程序的MySQL访问库soci,文章中还讲了其中的一些操作方法,需要的朋友可以参考下
    2015-05-05
  • MySQL 丢失数据的原因及解决

    MySQL 丢失数据的原因及解决

    这篇文章主要介绍了MySQL 丢失数据的原因及解决,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-05-05
  • MySQL如何构建数据表索引

    MySQL如何构建数据表索引

    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。本文将通过一个案例带领你理解索引的概念
    2021-05-05
  • MySQL数据存储路径修改的超详细教程

    MySQL数据存储路径修改的超详细教程

    在生产环境下,mysql的数据、索引都会很大,而mysql的默认存储路径是/val/lib/mysql,这就出现了问题,下面这篇文章主要给大家介绍了关于MySQL数据存储路径修改的超详细教程,需要的朋友可以参考下
    2023-03-03
  • MySql分表、分库、分片和分区知识深入详解

    MySql分表、分库、分片和分区知识深入详解

    这篇文章主要介绍了MySql分表、分库、分片和分区知识深入详解,如果有并发场景和数据量较大的场景的可以看一下文章,对你会有或多或少的帮助
    2021-03-03
  • MySQL8重置root账户密码图文教程超详细讲解

    MySQL8重置root账户密码图文教程超详细讲解

    root账户为MySQL的超级管理员用户,拥有MySQL提供的所有权限,这篇文章主要介绍了MySQL8重置root账户密码图文教程,需要的朋友可以参考下
    2023-05-05

最新评论