sql >> データベース >  >> RDS >> Mysql

mysqlストアド関数のパラメーターとして列名を渡す

    あなたのアプローチにはいくつかの問題があります。まず第一に、引数の valueを使用することはできません 基になる列を参照します。良い点は、プリペアドステートメントを使用できることです。 この回避策として。

    2番目の問題は、MySQL関数がプリペアドステートメントの使用を許可しないことです。この制限を回避するには、代わりにストアドプロシージャを使用する必要があります。例として:

    CREATE PROCEDURE test_func (IN col1 varchar(100), OUT res int)
    BEGIN
    
    SET @s=CONCAT('SELECT ',col1,' INTO @res FROM yourtable WHERE id=1');
    PREPARE stmt1 FROM @s;
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
    
    SELECT @res INTO res;
    
    END
    


    1. PHPMYSQLSETはwhileループでエラーを出します

    2. Oracle-ORA-06502:PL / SQL:数値または値のエラー(DBMS_OUTPUT)

    3. リンクされたテーブルからの参照を使用してテーブルから選択します(結合内で結合しますか?)

    4. Laravelで特定の製品IDが1つもないカテゴリごとにすべての製品を取得するにはどうすればよいですか?