我试图通过更改值将我的一列移动到另一列,但由于列名不匹配(一个是 role_id,另一个是 challenge_id),我尝试创建一个别名 as role_id 它不工作。 是我当前的查询。
我试着做
INSERT into role_user (role_id, user_id)
SELECT CASE
WHEN challenge_id=2 Then 6
When challenge_id=3 then 7
when challenge_id=4 then 8
when challenge_id=1 then 9
END
challenge_id as role_id , user_id
FROM challenge_user
最佳答案
你在“END”和“AS”之间有一个多余的“challenge id”:
INSERT into role_user (role_id, user_id)
SELECT CASE
WHEN challenge_id=2 Then 6
When challenge_id=3 then 7
when challenge_id=4 then 8
when challenge_id=1 then 9
END
AS role_id, -- Here!
user_id
FROM challenge_user
此外,由于您实际上并没有将此别名用于任何事情(只是将其直接插入到另一个表中),因此您可以完全删除它:
INSERT into role_user (role_id, user_id)
SELECT CASE
WHEN challenge_id=2 Then 6
When challenge_id=3 then 7
when challenge_id=4 then 8
when challenge_id=1 then 9
END,
user_id
FROM challenge_user
关于mysql - 如何在案例条件mysql上定义别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41093469/