我有两个查询要更新两个表:
第一表
UPDATE user_info SET `location` = ".$locationid.", `looking_for` = ".$lookingfor." WHERE `user_info`.`user_id` = ".$infoid."; 第二表
UPDATE user_personality SET `personality` = '".$changedescription."' WHERE `user_personality`.`user_info_id` = ".$infoid.";我试图用相同的语句合并这两个查询。
UPDATE user_info, user_personality
SET user_info.location = ".$locationid.", user_info.`looking_for` = ".$lookingfor.", user_personality.personality = '".$changedescription."'
WHERE `user_info`.`user_id` = ".$infoid."
AND `user_personality`.`user_info_id` = ".$infoid."我没有收到任何错误消息,但没有更新。
我做错了什么?
谢谢。
发布于 2015-05-19 17:06:58
只是猜猜..。
"
UPDATE user_info i
JOIN user_personality p
ON p.user_info_id = i.user_id
SET i.location = $locationid
, i.looking_for = '$lookingfor'
, p.personality = '$changedescription'
WHERE i.user_id = $infoid;
";发布于 2015-05-19 17:12:01
如果在where子句中将两个表字段设置为相等,则应该工作,因此我相信您会将where子句更改为:
WHERE `user_info`.`user_id` = `user_personality`.`user_info_id`
AND `user_info`.`user_id` = ".$infoid."MySQL绝对支持更新多个表,所以对多个表select语句起作用的where子句也应该适用于更新。
https://stackoverflow.com/questions/30331776
复制相似问题