MYsQL取一表某字段的值字段类型不相同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYsQL取一表某字段的值字段类型不相同相关的知识,希望对你有一定的参考价值。

两表都有字段ID,我想把表 v9_picture_data的pictureurls字段的值跟表 v9_picture的thumb字段值一样,但们的字段类型不一致,分别是mediumtext和char(100)---(不知道和这有没关系)我用语句
update v9_picture_data set v9_picture_data.pictureurls=(select v9_picture.thumb where v9_picture.ID=v9_picture_data.id);
或update v9_picture_data set b.pictureurls=a.thumb from v9_picture a,v9_picture_data b where a.id=b.id
都不行,咋弄
或者告诉我substring怎么取另一表字段也行,比如语句
update 表1 set 表1字段=substring(表2字段,8)
中的表2字段怎么表示

这样试试行不行:
alter table v9_picture_data drop pictureurls;

alter table v9_picture_data add pictureurls char(100);
update v9_picture_data inner join v9_picture on v9_picture.ID=v9_picture_data.id set
v9_picture_data.pictureurls=v9_picture.thumb;追问

前面几句不要,就可以,呵呵,高手

参考技术A 先改变它的字段类型,让他们的字段类型一样,然后再用你的update语句追问

不能改变字段类型

追答

不该变字段类型?两个字段类型都不一样肯定不行啊

追问

能批量变,然后又批量变回来不,不然就不行啊

通过某表某字段的更新指定值的触发来更新另一表字段值。

 通过某表某字段的更新指定值的触发来更新另一表字段值。

CREATE DEFINER=`iZX`@`%` TRIGGER `up_factory` AFTER UPDATE ON `ordinfo `
FOR EACH ROW BEGIN
SET @orderStatus = (SELECT status FROM ordinfo WHERE code=new.code LIMIT 1);
IF @orderStatus=1 THEN
update ordservinfo set is_out=1 where code=new.code;
END IF;
END;

 

 

语法注释

DROP TRIGGER IF EXISTS t_make_data; //删除原先的触发器
CREATE TRIGGER t_make_data //创建触发器
BEFORE INSERT ON t_tab1 //触发在这张表新增数据前
FOR EACH ROW
BEGIN  //要执行的sql list 开始
DECLARE number_rand BIGINT(20) DEFAULT 4000 ; 
 
SET number_rand = (SELECT CAST(RAND()*300+300 AS signed) AS rand);//进行随机数
 
SET new.number_rand = number_rand;//要在新增的数据中加入数据
END;//要执行的sql list 结束

 

以上是关于MYsQL取一表某字段的值字段类型不相同的主要内容,如果未能解决你的问题,请参考以下文章

mysql更新一个表里的字段等于另一个表某字段的值

MySQL 更新一个表里的字段等于另一个表某字段的值

如何将mysql数据库中某表某字段的数据批量导入到另外一个数据库指定表指定字段中

SQL多个字段相加

在mysql数据库中如何让某个字段有重复的只取一条

从mysql数据库取一条记录里的某个字段的值