sql >> Databasteknik >  >> RDS >> Mysql

Är det möjligt att dynamiskt välja ett kolumnnamn i MYSQL där kolumnnamnet är 1 av N kända värden?

Jag håller helt med @Strawberrys kommentar att "det här låter som en katastrof på gång "—det är en mycket dålig designstrategi och jag rekommenderar starkt att hitta en alternativ lösning. Men det är en intressant utmaning... det här är min lösning:

SELECT COALESCE(title,label,name) col FROM `table` NATURAL LEFT JOIN (
  SELECT NULL title, NULL label, NULL name
) t WHERE COALESCE(title,label,name) IS NOT NULL

Se den på sqlfiddle .

Observera att om postdata är NULL , ingen post kommer att returneras.



  1. Vikten av varchar-längd i MySQL-tabellen

  2. SQL - Välj 'n' största element i gruppen

  3. Doktrinen består inte entitet med booleska värden och PDO::ATTR_EMULATE_PREPARES =false i Mysql

  4. Varför returnerar IS NOT NULL NULL-värden för en Varchar(max) i SQL Server?