7
に基づいてストアドプロシージャ内にクエリ文字列を動的に作成します。目的は、入力変数に基づいてMysqlストアドプロシージャ内のクエリ文字列を変更することです。Mysqlは、ロジック
CREATE DEFINER=`root`@`localhost` PROCEDURE `func`(type VARCHAR(15))
BEGIN
SET @type = type;
-- Check for the sort parameter
if @type="asc" THEN
SET @sort = " order by name asc";
elseif @type="desc" THEN
SET @sort = " order by name desc";
else
SET @sort ="";
end if;
SELECT id, name from table @sort;
END
解決策を実行に使用することであり、連結:このような
何か DEFINER = 'root'をCREATE @ 'localhost'プロシージャ' test'(入力VARCHAR(15)) BEGIN SET @input = input; if @ input = "asc" then SET @sort = "Order by ActivityLogKey asc"; elseif @input = "desc" then SET @sort = "Order by ActivityLogKey desc"; else SET @sort = ""; end if; SET @query = CONCAT( 'select * from activitylog'、@ sort、 'limit 0、5'); PREPARE stmt FROM @query; EXECUTE stmt; DEALLOCATE PREPARE stmt; END –
これが解決策であれば、それを回答として追加して受け入れなかったのですが、それを受け入れるか、質問を編集してください。 –
100の評判がなければ、私は自分の質問に答えるのに8時間待たなければならない。 –