sql >> Databasteknik >  >> RDS >> Mysql

dynamiskt kolumnnamnsval i MySql

Vad du kan göra är att använda en förberedd sats i din lagrade procedur som gör att du kan köra en strängfråga:

Som ett enkelt exempel:

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 ;

Testa det med denna SQLFiddle Demo



  1. Där villkor för sammanfogat bord i Sequelize ORM

  2. MySQL:Varför är poängen alltid 1 i fulltext?

  3. Fix Msg 8116 "Argumentdatatypens datum är ogiltigt för argument 1 för delsträngsfunktionen" i SQL Server

  4. MySQL hämta sträng(ar) mellan två # / flera par av #