58t.net 58t.net58t.net

欢迎光临
我们一直在努力
顶部
域名
云服务器48/月

MySQL之同表一个字段如何赋值给另一个字段_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表复制一份),然后使用这种方法。

总结

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

【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。