sql >> Database teknologi >  >> RDS >> Mysql

dynamisk kolonnenavnvalg i MySql

Hvad du kan gøre er at bruge en forberedt sætning i din lagrede procedure, som giver dig mulighed for at udføre en streng-forespørgsel:

Som et simpelt eksempel:

DELIMITER //
CREATE PROCEDURE selname (IN col VARCHAR(20))
BEGIN
  SET @sql = CONCAT('SELECT ', col, ' FROM tbl');
  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END//
DELIMITER ;

Test det af med denne SQLFiddle-demo



  1. Relationel opdeling i mysql uden aggregerede funktioner?

  2. SQL:Hvordan holder man rækkefølgen med DISTINCT?

  3. Entity Framework Code First + MySQL... NullReferenceException

  4. Sådan fungerer DB_NAME() i SQL Server