Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql Come selezionare da una colonna solo se la colonna esiste

Questa query ti darà se esiste una colonna.

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME = 'column_name'

Se vuoi verificare se esistono alcune colonne, esegui un'istruzione select devi prima verificare che le tue colonne esistano. Quindi eseguire la selezione:

if (exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'myview' AND COLUMN_NAME = 'Period') and exists (SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = 'myview' AND COLUMN_NAME = 'Country'))
begin
    select `Period`, `Country` from myview
end

Se la condizione IF è vera, eseguirai qualsiasi cosa all'interno di BEGIN e END.