2016-12-16 4 views
0

ここでは、Mysqlエラー:1241に関連したstackoverflowの別のトピックがあります。すべてのトピックを読み、サブクエリに関する共通の問題があります。しかし、私の問題は異なっています。MySqlコード:1241オペランドには1列が含まれている必要があります

問題: - のMySqlコード: - プリペアドステートメントで

NOTE私のストアドプロシージャの1 - 私のselect文を1241オペランドが FROM 1列(複数可)

を含める必要がありますサブクエリと私の更新ステートメントはありません。

スクリーンショット - あなたは、単一の変数にタプルを代入することはできません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 

答えて

0

この:

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

は次のようになります。

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

WTF ...私は気づいていませんでした。私は、concat関数を置くのを忘れていました.hahahah thanks @Bill Karwin。 – mrRobot

+0

これは病気です。どうして私はビルハハハに気付かなかったでしょう。この問題は昨日私の頭が痛む。 – mrRobot

+0

うん!我々はすべてそこにいた。あなたは、単純な 'SET'ステートメントを見落としたあなたの質問の1つである原因に焦点を合わせました。乾杯! –

0

構文エラーは、()を選択から外します。

+0

時には、私たちが傾ける小さな問題や小さな問題があります。 see..im glad im now stackoverflowのメンバー.. – mrRobot

関連する問題