MYSQL reduce column length without changing datatype
If you change the column length you still have to specify the data type in the ALTER TABLE statement, as well as NOT NULL, DEFAULT and COMMENT unless you want to use the defaults (i.e. NULL DEFAULT NULL without any comment):

CREATE TABLE table1 (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
  col1 VARCHAR(45) NOT NULL DEFAULT 'a' COMMENT 'My favourite column'
);

ALTER TABLE table1 MODIFY COLUMN col1 VARCHAR(20) NOT NULL DEFAULT 'a' COMMENT 'My favourite column';