Det finns ingen bra lösning för frånvaron av Dynamic SQL i MySQL-funktioner, bara klunkiga klumpar. Vissa saker är fortfarande helt omöjliga att tycka om, som att använda ett dynamiskt beräknat fältnamn eller tabellnamn i en SQL-fråga. Ja, då och då finns det ett behov av att göra sånt här!
Och försök inte fuska genom att lägga Dynamic SQL i en lagrad procedur och slå in en funktion eller trigger, som frågeställaren försökte - MySQL är för smart och kommer att ge dig det vanliga obskyra felmeddelandet. Tro mig, jag har varit runt alla hus.
Jag kommer från en Oracle PL/SQL- och MS SQL Server-bakgrund och saknar verkligen den rikedom som PL/SQL och (i liten utsträckning) T-SQL erbjuder för att skriva processuell SQL.