MYSQL:错误1241(21000):操作数应包含1列

时间:2018-12-02 00:03:58

标签: mysql sql

这应该可以工作,但是我却以某种方式出错。我想从表中获取学分列并将其乘以100。问题是获取给定学生ID和年份的学分数量并获得总付款。假设每笔赠送金额为$ 100。

_init_

1 个答案:

答案 0 :(得分:1)

这是不正确的:

select ('No result found for student ID: ', stuID, ' at year: ', stuYear)

一个select语句可以包含多个列,但是您不应该将它们括在括号中。另外,这将返回多个值,您无法在单个消息中选择它们。

所以,我想您想将这些值合并为一个值。您可以使用concat函数来做到这一点,就像这样:

select concat('No result found for student ID: ', stuID, ' at year: ', stuYear)

顺便说一句,使用concat函数的常规分配也应在触发器中起作用:

SET msg = concat('No result found for student ID: ', stuID, ' at year: ', stuYear);

请参见MySQL concat function

PS:在下一条语句中,您还会得到括号:(credits * 100) 在这种情况下,由于它是单个表达式,因此它偶然会起作用。不过,它们没有任何功能价值,因此不妨将其删除。