MySql代码: 1241 operand should contain 1 column(s)

标签 mysql

我在 stackoverflow 中发现了与 Mysql 错误:1241 相关的不同主题。当我阅读所有主题时,他们有一些与其子查询相关的常见问题。但我的问题不同。

问题: - MySql 代码:1241 操作数应包含 1 列

来自 - 我的一个带有准备好的语句的存储过程

注意 - 我的 select 语句和我的 update 语句一样没有子查询。

屏幕截图 -ACTUAL SS

存储过程代码

CREATE PROCEDURE CancelRow_EM(IN tbl_name VARCHAR(25), IN rowindex FLOAT, OUT flagresult TINYINT, OUT msgresult VARCHAR(300))

 BEGIN
 START TRANSACTION;
IF tbl_name="emps_tbl" THEN
    SET @PrimaryCol="EMPS_ID";
    SET @RefCol="OBR NO.";

ELSEIF tbl_name="emmooe_tbl" THEN
    SET @PrimaryCol="EMMOOE_ID";
    SET @RefCol="PR NO.";

ELSEIF tbl_name="emco_tbl" THEN
    SET @PrimaryCol="EMCO_ID";
    SET @RefCol="PR NO.";

END IF;

SET @select1=CONCAT("SELECT `LINK_ID`,`",@RefCol,"` INTO @li,@Ref FROM `",tbl_name,"` WHERE ROUND(`EMPS_ID`,3)=",rowindex);
PREPARE stmtselect1 FROM @select1;
EXECUTE stmtselect1;
DEALLOCATE PREPARE stmtselect1; 

If @li IS NOT NULL THEN
    SET flagresult=0;
    SET msgresult="Cancellation of record was stopped. Reason: Earmark record was already utilize.";

ELSE
    SET @update1=CONCAT("UPDATE `",tbl_name,"` SET `CANCEL_STATUS`=1 WHERE ROUND(`",@PrimaryCol,"`,3)=",rowindex," AND `",@RefCol,"`='",@Ref,"'");
    PREPARE stmtupdate1 FROM @update1;
    EXECUTE stmtupdate1;

    SELECT row_count() INTO @RowsAffected1;
    DEALLOCATE PREPARE stmtupdate1;

    IF @RowsAffected1>0 THEN
        SET flagresult=1;
        SET msgresult=("No. of affected rows(s):",@RowsAffected1,", from modification process.");
        COMMIT;
    ELSE
        SET flagresult=0;
        SET msgresult=("There are no affected row(s) from modification process.");
        ROLLBACK;   
    END IF;
END IF;

END

最佳答案

您不能将元组分配给单个变量。

这个:

SET msgresult=("No. of affected rows(s):",@RowsAffected1,", from modification process.");

应该是:

SET msgresult=CONCAT("No. of affected rows(s):",@RowsAffected1,", from modification process.");

关于MySql代码: 1241 operand should contain 1 column(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41177015/

相关文章:

mysql - 获取两个日期之间的记录,但有时它们可​​能为空

mysql - 如何查询这个表呢?

mysql - 安装mysql(shell)而不安装mysqld(服务器)

mysql - 优化对另一个表中可选字段的查询

php - 尝试将我的数据库导出为 XML 文件并出现 "Extra content at end of document"错误

mysql - MAMP mysql 在一个用户帐户中启动,但不在另一个用户帐户中启动

php - 在 PHPMyAdmin 中收到 MySQL 错误

mysql - 如何从主机连接 MySQL Docker 镜像?

mysql - 使用 IN 语句进行缓慢的 mysql 删除查询

mysql - 如何在没有过多表或列的情况下进行规范化?