sql >> Database >  >> RDS >> Mysql

MySQL:Vraag naar een lijst met beschikbare opties voor SET

Nu, dit is gewoon gek, maar het is alleen voor MySQL en het werkt!

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');

Vervang gewoon "some_table" en "some_column" voor uw specifieke tabel/kolom en zie de magie!

U zult een raar gebruik van "information_schema.COLLATIONS" zien - dit is omdat we daar een tabel nodig hebben - elke tabel - met minstens N rijen , waarbij N het aantal elementen in je set is.



  1. Selecteer het grootste getal uit de MYSQL-tabel met toegevoegd voorvoegsel

  2. Lijst met elementen van getalnotatie in Oracle

  3. Evalueren wanneer een expressie in een query wordt geëvalueerd

  4. MYSQL FOUT 1096 - GEEN TABELLEN GEBRUIKT - CODEIGNITER