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

Mysql #1241-操作数应包含1列SQL UPDATE,mysql,sql,Mysql,Sql,我想更新一下 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 util

我想更新一下

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;
子查询是标量子查询。这应该只返回一列,最多返回一行。这假定只返回一行。如果要确定,请使用
限制

        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'
               )

子查询应该只返回一列。不是两个。(仅一行)请提供样本数据和所需结果。