#1241-操作数应包含1列SQL UPDATE



我想要更新

UPDATE utilisateurs
SET NAME = 't',
SURNAME = 't',
LOGIN = 't',
PASSWORD = 't',
TYPE = 'Formateur',
M_ID = (SELECT M.M_ID, M.LABEL
FROM matieres AS M
WHERE M.LABEL = 'Culture_General')
WHERE U_ID = 3

但这是错误的,我不知道是怎么做到的

大概您想要:

UPDATE utilisateurs
SET NAME = 't',
SURNAME = 't',
LOGIN = 't',
PASSWORD = 't',
TYPE = 'Formateur',
M_ID = (SELECT M.M_ID
FROM matieres M
WHERE M.LABEL = 'Culture_General'
)
WHERE U_ID = 3;

子查询是标量子查询。这应该只返回一列,最多返回一行。这假设只返回一行。如果您想确定,请使用LIMIT:

M_ID = (SELECT M.M_ID
FROM matieres M
WHERE M.LABEL = 'Culture_General'
LIMIT 1
)

或聚合:

M_ID = (SELECT MAX(M.M_ID)
FROM matieres  M
WHERE M.LABEL = 'Culture_General'
)

最新更新