将同一个表中的一个字段的值复制给另一个字段
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
-- 同一个表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)
要求:
替换成
测试数据:
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表复制一份),然后使用这种方法。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持一聚教程网。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔