我有以下select语句,它为没有交换的人获取了writingExericses.text的值。介绍
SELECT `courses`.`writingExercises`.`text`,
`general`.`exchange`.`name`
FROM `general`.`exchange`, `courses`.`writingExercises`
WHERE `general`.`exchange`.`introduction` = ''
AND `general`.`exchange`.`id` = `courses`.`writingExercises`.`userID`
AND `courses`.`writingExercises`.`lessonID` = 1
如何修改它以便将用户exchange.introduction设置为没有exchange.introduction的用户的writingExercises.text?
答案 0 :(得分:1)
要将select语句转换为更新语句,
将SELECT ... FROM
替换为UPDATE
关键字
在SET
子句
WHERE
子句
e.g。从这个select语句开始
SELECT w.text
, e.name
FROM general.exchange e
JOIN courses.writingExercises w
ON e.id = w.userID
WHERE w.lessonID = 1
AND e.introduction = ''
我们会得到一个像这样的更新声明:
UPDATE general.exchange e
JOIN courses.writingExercises w
ON e.id = w.userID
SET e.introduction = w.text
WHERE w.lessonID = 1
AND e.introduction = ''
(我的问题不清楚(对我而言)是否要更改“简介”列或“文本”列中的值。上面的示例设置了简介列的值。缺少架构描述和表格定义,很难说......)
但这证明了如何在MySQL中将SELECT语句转换为多表UPDATE语句的一般方法。