ALTER TABLE test ADD COLUMN IF NOT EXISTS column_a VARCHAR(255);
-- ALTER TABLE tbl_name ADD COLUMN column_name column_definition
-- [FIRST|AFTER existing_column];
ALTER TABLE office ADD COLUMN phone VARCHAR(200) DEFAULT '000' AFTER name;
ALTER TABLE office ADD COLUMN flag INT(1) FIRST;
ALTER TABLE office ADD COLUMN last_col INT(2); -- Last column is default position
-- ↓ Test it (Fiddle)
SELECT count(*) INTO @EXIST
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'mydatabase'
AND COLUMN_NAME = 'mycolumn'
AND TABLE_NAME = 'mytable' LIMIT 1;
SET @query = IF (@exist <= 0, 'ALTER TABLE mydatabase.`mytable` ADD COLUMN `mycolumn` MEDIUMTEXT NULL',
'select ' COLUMN EXISTS' status');
PREPARE stmt FROM @query;
EXECUTE stmt;