Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Abfrage nach Liste verfügbarer Optionen für SET

Nun, das flippt einfach aus, aber es ist nur MySQL und es funktioniert!

SELECT TRIM("'" FROM SUBSTRING_INDEX(SUBSTRING_INDEX(
   (SELECT TRIM(')' FROM SUBSTR(column_type, 5)) FROM information_schema.columns 
    WHERE table_name = 'some_table' AND column_name = 'some_column'),
',', @r:[email protected]+1), ',', -1)) AS item
FROM (SELECT @r:=0) deriv1,
(SELECT ID FROM information_schema.COLLATIONS) deriv2
HAVING @r <= 
   (SELECT LENGTH(column_type) - LENGTH(REPLACE(column_type, ',', ''))
    FROM information_schema.columns
    WHERE table_name = 'some_table' AND column_name = 'some_column');

Ersetzen Sie einfach "some_table" und "some_column" für Ihre spezifische Tabelle/Spalte und sehen Sie die Magie!

Sie werden eine seltsame Verwendung von "information_schema.COLLATIONS" sehen - das liegt daran, dass wir dort eine Tabelle brauchen - jede Tabelle - enthält mindestens N Zeilen , wobei N die Anzahl der Elemente in Ihrem Satz ist.