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

Mysqlは、ロジックに基づいてストアドプロシージャでクエリ文字列を動的に構築します

    解決策は、executeとconcatを使用することです:

    CREATE DEFINER=`root`@`localhost` PROCEDURE `test`(input 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
    



    1. nから始まるmySQLのn番目ごとの行を選択する方法

    2. JDBCドライバーが正しくインストールされているかどうか、およびDBが接続できるかどうかをテストするにはどうすればよいですか?

    3. Androidルーム:列の名前変更を移行する方法は?

    4. ユーザー'root'@'localhost'のアクセスが拒否されました(パスワードを使用:YES)