sql >> Database >  >> RDS >> Mysql

Mysql bouwt dynamisch querystring in een opgeslagen procedure op basis van logica

De oplossing is om execute en concat te gebruiken:

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. [UPDATE 2] Kritiek:Office Update verbreekt toegang - Query is beschadigd

  2. Beste manieren om back-ups te maken voor offline toepassingen?

  3. Voorbeelden van het converteren van 'date' naar 'datetime2' in SQL Server (T-SQL)

  4. Krijg het aantal nullen in een geheel getal met MySQL